用户将输入 1 到 5 之间的值。 根据输入值,我想创建多个具有不同名称的数组列表。
示例 1(当输入 = 3 时):
ArrayList<String> Group0 = new ArrayList<>();
ArrayList<String> Group1 = new ArrayList<>();
ArrayList<String> Group2 = new ArrayList<>();
示例 2(当输入 = 5 时):
ArrayList<String> Group0 = new ArrayList<>();
ArrayList<String> Group1 = new ArrayList<>();
ArrayList<String> Group2 = new ArrayList<>();
ArrayList<String> Group3 = new ArrayList<>();
ArrayList<String> Group4 = new ArrayList<>();
如果这个问题看起来微不足道,我事先表示歉意。我对编码相对较新,因此非常感谢任何可能知道可用方法/命令来获得上述结果的人。谢谢!
<小时/>我尝试这样做,但在初始化数组列表时我似乎无法使用“标签”。错误指出“变量标签已在方法 main(String[]) 中定义。
public static void main(String[] args) {
int userInput = 3;
int count = 0;
while(count < (userInput)) {
String label = "Group" + Integer.toString(count);
ArrayList<String> label = new ArrayList<>();
count++;
}
}
最佳答案
您可以根据用户输入的给定大小使用ArrayList
数组来满足您的要求。
ArrayList<String> lists[]=new ArrayList[input];
for(int i=0;i<input;i++){
lists[i]=new ArrayList<>();
}
使用 lists[0]
访问第一个列表,使用 lists[1]
访问第二个列表,依此类推。
ArrayList
是在 Java 中提供动态数组的选项,但这不是您的要求,因此也使用数组,因为 ArrayList
比数组慢。
此外,如果您的要求更具体,名称为 Group1
、Group2
...,您可以使用 HashMap
来实现相同的目的。
HashMap<String,ArrayList<String>> maps=new HashMap<String, ArrayList<String>>();
for (int i=0;i<input;i++)
maps.put("Group"+String.valueOf(i),new ArrayList<String>());
当你想从 map 中检索数组列表时使用
maps.get("Group0");
关于Java创建多个数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226004/