我需要创建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"
答案 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