如何将使用for循环创建的子列表添加到ArrayList?考虑到子列表的数量可能是数百甚至数千。我知道下面的代码是不行的,因为addAll需要有一个列表作为参数,但它是我之后的那种东西。
List<Integer> list1 = arrayList.subList(0, 3);
List<Integer> list2 = arrayList.subList(3, 6);
List<Integer> list3 = arrayList.subList(6, 9);
ArrayList<Integer> newArray = new ArrayList<Integer>();
for (int i = 0; i < 3; i++) {
String listNum = "list" + i;
newArray.addAll(listNum);
}
答案 0 :(得分:3)
你不能解决&#34;索引的局部变量 - 你需要一个数组:
List<Integer>[] list = new List<Integer>[] {
arrayList.subList(0, 3)
, arrayList.subList(3, 6)
, arrayList.subList(6, 9)
};
ArrayList<Integer> newArray = new ArrayList<Integer>();
for (int i = 0; i < 3; i++) {
newArray.addAll(list.get(i));
}
在您的具体示例中,您可以动态构建子列表,而无需将它们存储在数组中:
ArrayList<Integer> newArray = new ArrayList<Integer>();
for (int i = 0; i < 3; i++) {
newArray.addAll(arrayList.subList(3*i, 3*(i+1)));
}
答案 1 :(得分:0)
List<List<Integer>> list = new ArrayList<List<Integer>>();
list.add(arrayList.subList(0, 3));
list.add(arrayList.subList(3, 6));
list.add(arrayList.subList(6, 9));
ArrayList<Integer> newArray = new ArrayList<Integer>();
for (int i = 0; i < list.size(); i++) {
newArray.addAll(list.get(i));
}
您可以创建一个列表列表并循环遍历该列表,将每个子列表的内容添加到newArray。
答案 2 :(得分:0)
为什么不列出列表或列表数组:
List<List<Integer>> finalList = Arrays.asList(list1, list2, list3);
for (List<Integer> list : finaList) {
newArray.add(list);
}