List subitemsCategory=new ArrayList(); //Creating the subList
subitemsCategory.add("Garnier"); //Adding sublist
subitemsCategory.add("Bajaj");
List items=new ArrayList(); //Creating Main List
items.add("Shampoo");
items.add("Oil");
items.add(subitemsCategory); //Adding a new List in items
System.out.println(items); //Print Collection within Collection
如何打印集合中的集合?
答案 0 :(得分:1)
通过toString
递归电话
在Java toString
中,可以在每个对象上调用方法,无论它是否是列表。
以这种方式打印由3个字符串"a"
,"b"
和"c"
组成的列表:
[a, b, c]
。
在元素之前打印[
,
然后打印以逗号分隔的列表
并且最后有一个]
。
当元素本身是一个列表时会发生什么?
执行其toString
方法,因此:
[a, b, [c, d, e]]
在你的情况下:
[Shampoo, Oil, [Garnier, Bajaj]]
关注OP的另一个问题...... 当我们这样做时会发生什么:
Collection aCollection = //constructor call
aCollection.add(aCollection);
没有像堆栈溢出等错误。 它只会打印:
[..., (this Collection), ...]
这是三元运算符使用的目的in the source code。