【问题标题】:How to print an ArrayList of ArrayLists so that each inner list is printed on one row?如何打印 ArrayLists 的 ArrayList 以便每个内部列表打印在一行上?
【发布时间】:2012-04-16 14:41:12
【问题描述】:
我有一个 ArrayList 的 ArrayList - 类似于 ArrayList<ArrayList<Node>>。
由于我将其作为函数的返回值,因此每次调用后都会调用不同的大小。我想知道如何显示它的元素是这样一种方式,即内部 ArrayList 构成一行,因此每一行。
for 循环所需的参数是什么?提前致谢。
【问题讨论】:
标签:
java
arraylist
tostring
pretty-print
【解决方案1】:
for (List<Node> l1 : arrayLists) {
for (Node n : l1) {
System.out.print(n + " ");
}
System.out.println();
}
【解决方案2】:
这是一个基本示例:
public static void main(String[] args) {
List<List<String>> ls;
//initialize ls and set values in it...
//after set some values, let's print it
for(List<String> innerLs : ls) {
String[] arr = innerLs.toArray();
System.out.println(Arrays.deepToString(arr));
}
}
List<List<T>> 的逻辑应该相同。
【解决方案3】:
调用iterator(),它将返回一个Iterator<ArrayList<Node>>,然后循环。
在循环内再次调用iterator(),在每个迭代的元素上,这将返回一个Iterator<Node>;使用内部循环并在其上使用next() 进行显示。
对于循环,请使用“foreach”循环 (for(Node n : iterator)) 或 while 循环 (while(iterator.hasNext()))。