我需要在一个集合中添加大量元素。我正在考虑以下实现
Set<String> myset = new HashSet<String>(){{
add("name1");
add("name2e");
//and so on
}};
或创建未初始化的集合,然后添加值
Set<String> myset = new HashSet<String>();
myset.add("name1");
//amd so on
但我有超过1000个条目,我不可能逐个手动添加它们。是否可以添加一个大的整体而不是一个一个?
答案 0 :(得分:2)
听起来你应该以某种方式使用循环。像这样:
for (String element : elements) {
set.add(element);
}
由你决定如何获得elements
。从文件或其他东西中读取它们。如果文件看起来像这样:
NAME1
NAME2
NAME3
只需阅读每一行,然后为每一行添加该行。
答案 1 :(得分:1)
如果您有重复值,则无法在此处使用set
。将所有值放到文件中并使用java代码读取它们。
FileReader file=new FileReader("D:\\Test.txt");
BufferedReader br=new BufferedReader(file);
String str;
Set<String> st=new HashSet<String>();
while((str=br.readLine())!=null)
{
st.add(str);
}
答案 2 :(得分:0)
首先,这不是一个好主意。它太奇怪了:
Set<String> myset = new HashSet<String>(){{
add("name1");
add("name2e");
//and so on
}};
HashSet
不是最终的,所以它有效。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代码中。