Java - 遍历 ArrayList 行(列)?

标签 java arraylist iterator iteration

遍历 ArrayList 行值的最简单方法是什么?

例如我有两个ArrayList:

ArrayList<Object> main = new ArrayList<Object>();
ArrayList<Object> row = new ArrayList<Object>();

我使用两个 for 将值添加到 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);

}

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

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

最佳答案

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

List<List<Object>> main = new ArrayList<>();

现在迭代变得很明显了:

for (List<Object> row : main) {
    for (Object element : row) {
        // do what you want here
    }
}

这具有使您的代码类型安全的额外优势:您将无法无意中添加除 List<Object> 之外的任何内容。在主列表中。

关于Java - 遍历 ArrayList 行(列)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19890381/

相关文章:

java - 在 Hadoop 中,如果你想将每个键值对的值保存到一个数组中,为什么你添加的所有元素都是相同的?

java - 应用程序崩溃 libc : Fatal signal 11 (SIGSEGV), 代码 1

java - jboss-all.xml 未考虑 JBoss EAP 6.4(不工作)

java - 基本java中存在导入、类困惑

java - 在 JavaFX 中使用 ObservableList 是否违背了模型- View - Controller 分离?

c++ - 这是制作迭代器的可接受方式吗?

java - NFC 内部读卡器调用其他应用程序

java - 对象映射,无法按索引访问 ArrayList 元素

java - 在 Java 的 foreach 循环中调用 remove

rust - 如何减少(折叠)迭代器并保留中间结果(例如累计和)?