如何在 java 中使用循环定义多个集合?

How to define multiple set using loop in java?

我想定义数千个 treeset.How 我可以使用某种循环来做到这一点吗?我试过下面的代码,但它给了我 "Duplicate local variable" 错误

//String names_array[]={jason,jack,katia,michael......}lots of name here
for (int z = 0; z < 2000; z++) {
  String nameofset = namesarray[z];                     
  TreeSet<String> nameofset = new TreeSet();
}

编辑:需要更多解释我guess.I想创建具有不同名称的不同集合,其中每个名称都是列表中的一些字符串,例如 jason、jack...

for 循环中有两个名为 nameofset 的变量。在您的代码中进行以下更改 -

for(int z=0;z<2000;z++){
   String nameString =namesarray[z];                     
   TreeSet<String> nameofset = new TreeSet();
}

您必须考虑要在其中存储数千个树集的数据结构。例如地图:

Map<String, Set<String>> namedSets = new HashMap<>();
String[] names = { "jason", "jack", "katia", "michael"};
for(String name : names) {            
    namedSets.put(name , new TreeSet<String>());
}

获取特定集合:

Set<String> jacksSet = namedSets.get("jack");

您必须将 TreeSet 对象创建和分配给变量分成两个单独的步骤。在循环中,您只能创建对象,但不要尝试一次又一次地分配给同一个引用变量——显然,这是一个错误。您需要一个 ArrayList<TreeSet<String>> 来保存这些对象。稍后,您可以将这些对象分配给您想要的任何引用。

此外,当您可以通过 ArrayList 中的索引访问这些对象并根据需要分配给任何引用时,还不清楚为什么需要不同的变量名开头。

你有这个代码:

  String nameofset = namesarray[z];                     
  TreeSet<String> nameofset = new TreeSet();

您创建了两个同名的变量。 TreeSet 对象的定义抛出异常,因为在它上面使用了局部变量名。您应该使用不同的名称,我想知道您将如何处理 String 变量,因为它在其范围内未被使用。