Java 通过for循环将子列表添加到arraylist

Java 通过for循环将子列表添加到arraylist,java,arraylist,sublist,Java,Arraylist,Sublist,如何将使用for循环生成的子列表添加到ArrayList?考虑到子列表的数量可能是数百,甚至数千。我知道下面的代码是不可行的,因为addAll需要一个列表作为参数,但这正是我想要的 List<Integer> list1 = arrayList.subList(0, 3); List<Integer> list2 = arrayList.subList(3, 6); List<Integer> list3 = arrayList.subList(6, 9);

如何将使用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);
}
List list1=arrayList.subList(0,3);
list2=arrayList.subList(3,6);
List list3=arrayList.subList(6,9);
ArrayList newArray=新ArrayList();
对于(int i=0;i<3;i++){
字符串listNum=“list”+i;
addAll(listNum);
}
您不能通过索引“寻址”局部变量-您需要一个数组:

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));
}
List[]List=新列表[]{
arrayList.subList(0,3)
,arrayList.subList(3,6)
,arrayList.subList(6,9)
};
ArrayList newArray=新ArrayList();
对于(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)));
}
ArrayList newArray=newarraylist();
对于(int i=0;i<3;i++){
newArray.addAll(arrayList.subList(3*i,3*(i+1));
}
List List=new ArrayList();
添加(arrayList.subList(0,3));
添加(arrayList.subList(3,6));
添加(arrayList.subList(6,9));
ArrayList newArray=新ArrayList();
对于(int i=0;i

您可以创建一个列表列表,并通过该列表循环,将每个子列表的内容添加到新数组中。

为什么不创建列表列表列表或列表数组:

List<List<Integer>> finalList = Arrays.asList(list1, list2, list3);

for (List<Integer> list : finaList) {
    newArray.add(list);
}
List finalList=Arrays.asList(列表1、列表2、列表3);
(名单:入围者){
添加(列表);
}

您期望的输出是什么?一个包含所有列表的数组。为什么您要向newArray添加一个字符串,即ArrayList?您似乎缺少一些基本的java知识。listNum是一个字符串,不能通过匹配名称使其指向ArrayList。
List<List<Integer>> finalList = Arrays.asList(list1, list2, list3);

for (List<Integer> list : finaList) {
    newArray.add(list);
}