Java - 迭代ArrayList行(列)?

And*_*ius 1 java iteration iterator arraylist

迭代ArrayList行值的最简单方法是什么?

例如我有两个ArrayList:

ArrayList<Object> main = new ArrayList<Object>();
ArrayList<Object> row = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

我使用两个fors将值添加到main中.首先我添加行,然后当行迭代结束时,我将它添加到main,然后重复另一行等.例如:

for(int i=0; i < somearray.length; i++){
  for(int j=0; j < somearray2.length; j++){
    if(somearray2[j] == true)
      row.add(somearray2[j]);
    }
  main.add(row);

}
Run Code Online (Sandbox Code Playgroud)

所以现在我得到的ArrayList充满了我需要的行.但后来我需要遍历行值,而不仅仅是行本身main ArrayList.我怎样才能做到这一点?我只看到了方法:

main.get(index),让我得到一行,但仅此而已.

JB *_*zet 6

因此,根据您的描述,main不是对象列表,而是列表列表.所以应该声明为

List<List<Object>> main = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

迭代现在变得明显:

for (List<Object> row : main) {
    for (Object element : row) {
        // do what you want here
    }
}
Run Code Online (Sandbox Code Playgroud)

这具有使代码类型安全的额外优势:您将无法List<Object>在主列表内部添加任何其他内容.