【问题标题】:Iterate through an ArrayList of ArrayLists in Java在 Java 中遍历 ArrayList 的 ArrayList
【发布时间】:2013-12-26 13:36:43
【问题描述】:

我有以下 ArrayList...

ArrayList<ArrayList<Integer>> row1 = new ArrayList<ArrayList<Integer>>();

以下arraylists被添加到它......

row1.add(cell1);
row1.add(cell2);
row1.add(cell3);
row1.add(cell4);
row1.add(totalStockCell);

我想遍历 arraylist row1 并打印内容。

循环中的循环可以在这里工作吗?

例如

while(it.hasNext()) {

//loop on entire list of arraylists
    while(it2.hasNext) {
      //each cell print values in list

          } }

【问题讨论】:

    标签: java arraylist iterator


    【解决方案1】:

    老问题,但我很好奇为什么没有人提到这种方式,

    for(int i=0; i<list.size(); i++) {          
        for(int j=0; j<list.get(i).size(); j++) {
            System.out.print(list.get(i).get(j) + " ");    
        }
        System.out.println();
    }
    

    这与访问二维数组中的矩阵相同。

    【讨论】:

      【解决方案2】:

      这里有一些函数式方法:

          ArrayList<ArrayList<Integer>> row1 = new ArrayList<>();
          row1.add(new ArrayList<>(Arrays.asList(1, 2, 3)));
          row1.add(new ArrayList<>(Arrays.asList(4, 5, 6)));
          row1.stream().flatMap(Collection::stream).forEach(System.out::println);
      

      【讨论】:

        【解决方案3】:

        如果你想使用迭代器,嵌套循环将起作用:

            Iterator<ArrayList<Integer>> it = row1.iterator();
        
            while(it1.hasNext())
                {
                Iterator<Integer> itr = it.next().iterator();
                while(itr.hasNext())
                    {
                    System.out.println(itr.next());
                    }
                }
        

        【讨论】:

          【解决方案4】:

          这是您执行此操作的规范方式:

          for(List<Integer> innerList : row1) {
              for(Integer number : innerList) {
                  System.out.println(number);
              }
          }
          

          【讨论】:

            【解决方案5】:
            for (ArrayList<Integer> list : row1)
            {
                for (Integer num : list)
                {
                    //doSomething
                }
            }
            

            Java 增强型 for 循环在后台使用迭代器。

            【讨论】:

              猜你喜欢
              • 2014-10-21
              • 1970-01-01
              • 2015-02-13
              • 1970-01-01
              • 2015-11-28
              • 1970-01-01
              • 2013-04-05
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多