我有以下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并打印内容。
循环中的循环会在这里工作吗?
E.g。
while(it.hasNext()) {
//loop on entire list of arraylists
while(it2.hasNext) {
//each cell print values in list
} }
答案 0 :(得分:4)
这是你这样做的规范方式:
for(List<Integer> innerList : row1) {
for(Integer number : innerList) {
System.out.println(number);
}
}
答案 1 :(得分:2)
for (ArrayList<Integer> list : row1)
{
for (Integer num : list)
{
//doSomething
}
}
Java enhanced-for循环在后台使用迭代器。
答案 2 :(得分:0)
如果你想使用Iterator,嵌套循环将起作用:
Iterator<ArrayList<Integer>> it = row1.iterator();
while(it1.hasNext())
{
Iterator<Integer> itr = it.next().iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}
}
答案 3 :(得分:0)
一个古老的问题,但我很好奇为什么没人这么说
for(int i=0; i<list.size(); i++) {
// Didn't want to create extra space here
for(int j=0; j<list.get(i).size(); j++) {
System.out.print(list.get(i).get(j) + " ");
}
}
这与访问2D矩阵相同。
答案 4 :(得分:0)
这里有一些实用的方法:
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);