4

我们如何在循环内动态创建arraylist?

就像是 -

for(i=0;i<4;i++)  
{  
List<Integer> arr(i) = new ArrayList<>();  
}         
4

7 回答 7

15

听起来您真正想要的是列表列表:

List<List<Integer>> lists = new ArrayList<List<Integer>>();
for (int i = 0; i < 4; i++) {
    List<Integer> list = new ArrayList<>();
    lists.add(list);
    // Use the list further...
}

// Now you can use lists.get(0) etc to get at each list

编辑:删除了数组示例,因为泛型类型的数组当然在 Java 中被破坏了 :(

于 2013-02-08T07:32:55.887 回答
3

也许你想要这样的东西。这将根据需要创建多个“列表”。在这种情况下,我正在创建两个列表:

import java.util.LinkedList;
import java.util.List;

public class NumberOfList {
    public static void main (String [] args){
        List<Integer> list[];
        list = new LinkedList[2];
        for(int x=0; x<2; x++){ 
            list[x]= new LinkedList(); 
        }
    }
}
于 2017-05-11T02:09:26.180 回答
3

创建一个 Arraylist 列表:

import java.io.*;
import java.util.Scanner;
public class Solution {

  public static void main(String[] args) {

    int i=0;

    Scanner obj=new Scanner(System.in);

    List<List<Integer>> lists = new ArrayList<List<Integer>>();
    System.out.println("Enter the number of lists");
    int n=obj.nextInt();

    while (i<n) {
      List<Integer> list = new ArrayList<Integer>();
      System.out.println("Enter the number of integers you want to enter in an ArrayList");

      int d=obj.nextInt();
      for(int j=0;j<d;j++){
        list.add(obj.nextInt());
      }
      lists.add(list);
      System.out.println("List "+i+ "is created");
      System.out.println(lists.get(i));
      System.out.println("");
      i++;
    } //end of while

  } //end of main
} //end of class
于 2016-12-20T09:37:43.987 回答
2

你可以试试这个。

List<List<Integer>> dataList = new ArrayList<List<Integer>>();

for(int i = 1; i <= 4; i++)
{
 List<Integer> tempList = new ArrayList<Integer>();
 dataList.add(tempList);
}

用于添加数据

for(int i = 1; i <= 4; i++)
{
int value = 5+i;
  dataList.get(i - 1).add(value);

}
于 2015-01-06T11:18:46.623 回答
2

创建一个以 ArrayList 作为元素的 ArrayList。

ArrayList<ArrayList<Integer>> mainArrayList = 
new ArrayList<ArrayList<Integer>>();

您可以通过以下方式将元素添加到 mainArrayList 中:

ArrayList<Integer> subArrayList;

for(int i=0;i<4;i++) {

    subArrayList = new ArrayList<Integer>();
    subArrayList.add(1); // I'm adding a random value to subArrayList
    mainArrayList.add(subArrayList);

}

现在,mainArrayList 将包含我们添加的 4 个数组列表,我们可以使用 for 循环访问每个元素(即 ArrayList)。

于 2019-08-07T10:48:38.897 回答
1
List<List<Integer>> dataList = new ArrayList<List<Integer>>();
for(i=0;i<4;i++)  
{  
 List<Integer> arr = new ArrayList<>();  

 dataList .add(arr );
}

这可能会帮助你。如果不是,请澄清场景。

于 2013-02-08T07:41:35.397 回答
-2

我不确定你的意思,也许是这个?

List<Integer> arr = new ArrayList<Integer>();  
for(i=0;i<4;i++)  
{  
    arr.add(i);  
}     
于 2013-02-08T07:33:14.863 回答