Как определить несколько наборов, используя цикл в java?
Я хочу определить тысячи treeet.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();
}
Изменение: нужно больше объяснений, я думаю. Я хочу создать разные наборы с другим именем, где каждое имя является некоторой строкой из списка, например, jason, jack...
Вы должны думать о структуре данных, в которой вы хотите хранить тысячи деревьев. Например, карта:
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");
У вас есть этот код:
String nameofset = namesarray[z];
TreeSet<String> nameofset = new TreeSet();
Вы создаете две переменные с одним и тем же именем. Определение объекта TreeSet
вызывает исключение, так как имя локальной переменной использовалось чуть выше него. Вы должны использовать разные имена, и мне интересно, что вы будете делать с переменной String
, поскольку она не используется в своей области.
Вам придется отделить TreeSet
объекта TreeSet
и назначить переменные на два отдельных шага. В цикле вы можете создавать только объекты, но не пытайтесь снова и снова назначать одну и ту же ссылочную переменную - очевидно, это ошибка. Для хранения этих объектов вам понадобится ArrayList<TreeSet<String>>
. Позже вы можете назначить эти объекты на любые нужные вам ссылки.
Кроме того, неясно, почему вам нужны разные имена переменных, чтобы начать с того, когда вы можете получить доступ к этим объектам по своим индексам из ArrayList
и назначить любые ссылки по своему усмотрению.
У вас есть две переменные по имени nameofset
внутри цикла. Внесите следующие изменения в свой код:
for(int z=0;z<2000;z++){
String nameString =namesarray[z];
TreeSet<String> nameofset = new TreeSet();
}