java - 遍历 ArrayList <Object<String>>

标签 java arrays arraylist loops

我在迭代 ArrayList 时遇到一些问题。我有一个名为 Row 的类(class)延伸ArrayList<String> 。我有另一个名为 Table 的类(class)延伸ArrayList<Row> .

我正在尝试迭代 Table 类来转换 ArrayList行转换为二维字符串数组。

这是我的 Table 的代码类:

public class Table extends ArrayList<Row>
{
public Row[] appArray; //Array of single applicant details
public String tableArray[][]; //Array of every applicant
private ArrayList<Row> ar;
private Row r;

public Table()
{
}

public void addApplicant(Row app)
{
    add(app);
    displayable();
}

public void convertToArray()
{
    int x = size();
    appArray=toArray(new Row[x]);
}

public void displayable()
{
int i,j;
for (Row r: ar)
   i=0;
    for(String s: r){
        j=0;
        tableArray[i][j]=s;
        j++;
    }

}}

这是Row类:

public class Row extends ArrayList<String>
{
public Row(String appNumber, String name, String date, String fileLoc, String country, Table table)
{
    addDetails(appNumber,name,date,fileLoc,country);
    table.addApplicant(this);
}

public void addDetails(String appNumber, String name, String date, String fileLoc, String country)
{
    add(appNumber);
    add(name);
    add(date);
    add(fileLoc);
    add(country);
}}

我遇到问题的方法是 displayable()Table类(class)。它告诉我i may not have been initialized但是,如果我在每个循环的第二个中初始化它,它将仅迭代我的 Table ArrayList 中的第一个元素。 ?

提前感谢您的指点。

最佳答案

您刚刚错过了 for (Row r: ar) 循环中的 block 。

此外,如Fortega请注意,您永远不会在代码中增加 i ,并且我认为您在错误的位置将计数器归零。

所以,而不是:

for (Row r: ar)
   i=0;
   for(String s: r){
     j=0;
     tableArray[i][j]=s;
     j++;
   }

你应该这样写:

i=0;
for (Row r: ar) {
  j=0;
  for(String s: r){
    tableArray[i][j]=s;
    j++;
  }
  i++;
}

或者更好地缩小计数器的可见区域并将声明与初始化连接起来:

// Remove previous declarations

int i=0;
for (Row r: ar) {
  int j=0;
  for(String s: r){
    tableArray[i][j]=s;
    j++;
  }
  i++;
}

关于java - 遍历 ArrayList <Object<String>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15342611/

相关文章:

c - 数组作为函数参数

java - 如何在android中使数组列表的数组列表可分割

java - 在restful jersy客户端中获取数组列表

java - 如何限制客户端访问URL中包含参数的网页

java - 在 Java 中找到具有最高亲和性的值对?

java - 文件 java 的类路径

将 C 字符串转换为二进制值数组,然后逐位传输数组

java - 需要从 List<String[]> 转换为数组的帮助

java - 帮助在 Tapestry5 中创建 JavaScript 混合?

java - 资源字符串作为 tabLayout 的标题