在JAVA中动态创建arrayList

时间:2014-11-26 14:30:53

标签: java arrays arraylist

我需要创建50 arraylists,而不是必须单独初始化它们。在JAVA中有没有办法可以动态地做到这一点?

伪代码:

for int i=1; i<51; i++
List<String> Counti = new ArrayList<String>();

所以在循环中它会经历并创建50个arraylists,所有这些都称为Count1, Count2, Count3等,直到Count50

我尝试创建一个字符串,然后按字符串命名列表,但它似乎没有认识到名称是变量。

e.g。

for int i=1; i<51; i++
String Name="Count "+i
List<String> Name = new ArrayList<String>();

相反,它只是创建一个名为"Name"

的列表

4 个答案:

答案 0 :(得分:3)

你可以用反射做到这一点,但这是一个非常糟糕的主意。你可能想要做的是创建一个arraylists的arraylist。

 ArrayList<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>();
 for (int i = 0; i < 50; i++)
      listOfLists.add(new ArrayList<String>());

答案 1 :(得分:1)

您应该将它们存储在List中,而不是创建50个变量

List<List<String>> lists = new ArrayList<ArrayList<String>>();
for (int i = 0; i < 50; i++)
{
    lists.add(new ArrayList<String>());
}

答案 2 :(得分:1)

您需要List ArrayList

List<List<String>> lists = new ArrayList<>();

for (int i = 0; i < 50; i++){
    lists.add(new ArrayList<String>());
}

答案 3 :(得分:0)

另一个可能的解决方案是使用HashMap这样命名ArrayLists

Map<String, ArrayList<String>> mAllArrayListsByName = new HashMap<String, ArrayList<String>>();
for (int i = 0 ; i < 50 ; i++){
  mAllArrayListsByName.put("List"+String.valueOf(i), new ArrayList<String>());
}
ArrayList<String> lMyArrayList = mAllArrayListsByName.get("List0"); // get List 0