Во-первых, это не очень хорошая идея. Его слишком странно:
Set<String> myset = new HashSet<String>(){{
add("name1");
add("name2e");
//and so on
}};
- Наружный набор брекетов создать анонимный внутренний класс.
HashSet
не является окончательным, так что он работает.
- Внутренний набор фигурных скобок представляет собой блок инициализатора. Не статический (который чаще используется), а блок инициализатора экземпляра.
- Код Java внутри там вызывает метод
add()
на этом экземпляре.
Но вы могли бы сделать это:
String[] strs = new String[]{
"name1",
"name2e",
//and so on
};
Set<String> myset = new HashSet<String>();
myset.addAll(Arrays.asList(strs)); // This is the easy way
Но это то, что я имел в своем распоряжении @nachokk отметил улучшение.
for (String s ; strs) {
myset.add(s);
}
Его довольно легко взять файл слов, который кто-то дает вам и загружает в текстовый редактор или текстовый редактор. Затем используйте поиск и замену, чтобы переформатировать его, чтобы было одно слово в строке. Затем добавьте двойную кавычку в начало каждой строки и двойную кавычку + запятую до конца. Что-то вроде TextPad, например, может выполнять поиск регулярных выражений для одной целой строки и добавлять символы в начало и конец.
Это можно вырезать и вставить в код Java выше.
вы могли бы экстернализовать эти значения некоторых свойств файла и написать немного кода, чтобы читать его оттуда и заселить в 'Set' –
Где вы получаете эти значения из? –
Ваш вопрос непонятен, если у вас 1000 значений, то SOMEPLACE вам нужно будет записать эти значения. Либо в коде, в файле, базе данных и т. Д. И т. Д. –