我有一个arraylist extnID
,它由多个outer
组成。我想为List<String> inner
的不同值创建一个arraylist(或任何其他类型的列表/集合),我仍然坚持如何去做。以下是我希望如何构建列表:
outer
这就是我实例化我的列表的方式:
wantThisList ->
{ [ [innerListofStrings1], [innerListOfStrings2] ] ,
[ [innerListOfStrings3], [innerListOfStrings4] ] ,
.... }
和样本列表,类似于我正在做的事情:(请阅读评论)
List<List<String>> outer = new ArrayList<List<String>>();
List<String> inner1 = new ArrayList<String>();
List<String> inner2 = new ArrayList<String>();
修改
在控制台上打印此for(String elements : SomeList){
outer.clear();
inner1.clear();
inner2.clear();
inner1.add("abc");
inner1.add("xyz");
inner2.add("ijk");
inner2.add("mno");
outer.add(inner1);
outer.add(inner2);
// NewListofAllOuters.add(outer); //can I do something like this? If yes, what should be this list type?
}
NewListofAllOuters = ??? //how to add each of this outer(with 2 inner list entities) as one row in NewListofAllOuters????
时我想要的输出:
NewListOfAllOuters
任何人都可以帮我使用正确的Collection定义这个[ [[abc,xyz],[ijk, mno]], [[abc,xyz],[ijk, mno]] , [[abc,xyz],[ijk, mno]] ,... ]
吗?
答案 0 :(得分:0)
您似乎对List
(s)和副本感到非常困惑,一般来说,添加或创建List
时不会复制这些元素;所以清除List
实例是行不通的。假设我理解了你的目标,你只需要outer
和一个循环来填充它。像,
List<List<String>> outer = new ArrayList<>();
for (int i = 0; i < 4; i++) {
outer.add(Arrays.asList("abc", "xyz"));
outer.add(Arrays.asList("ijk", "mno"));
}
System.out.println(outer);
哪个输出
[[abc, xyz], [ijk, mno], [abc, xyz], [ijk, mno], [abc, xyz], [ijk, mno], [abc, xyz], [ijk, mno]]
因为outer
是List
的{{1}}。如果 真的 希望它达到三个深度,那么您仍然只需要一个List
列表。像,
outer
哪些输出(正如您所说的那样)
List<List<List<String>>> outer = new ArrayList<>();
for (int i = 0; i < 4; i++) {
List<List<String>> inner = new ArrayList<>();
outer.add(inner); // <-- note that this inner reference is used on the next two lines.
inner.add(Arrays.asList("abc", "xyz"));
inner.add(Arrays.asList("ijk", "mno"));
}
System.out.println(outer);