如何创建arrayList的arrayList的arrayList(?)?

时间:2018-05-30 19:42:59

标签: java arraylist

我有一个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]] ,... ] 吗?

1 个答案:

答案 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]]

因为outerList的{​​{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);