我只是想知道,一次向 HashSet 添加多个项目的最佳方法是什么?
我正在做一项家庭作业,其目标是迭代 .java 文件并计算文件中的关键字。作业描述的底部写着(“提示:创建一个 Set 来保存所有 Java 关键字”)
我对 HashSets 并不完全熟悉,我不知道如何一次添加大量单词,我当然不想通过 .add("final") .add("true ") ..对于每个关键字依此类推。
因此,我创建了一个包含所有这些单词的数组列表。然后我使用 for 循环来循环并将每个元素添加到集合中。但是,这似乎是多余的。如果我已经获得了数组中的所有关键字,那么我不明白为什么需要将它们添加到 HashSet 中才能完成分配。 但是,为了更多地了解 HashSets,有没有办法不用我使用的方法(除了 1 by 1)来做到这一点?
String[] aryKeywords = { "abstract", "asset", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictftp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while", "false", "null", "true" };
Set<String> jKeywords = new HashSet<String>();
for (int i = 0; i < aryKeywords.length; i++) {
jKeywords.add(aryKeywords[i]);
}
感谢您的见解!
最佳答案
乔恩·斯基特的回答是正确的。另一种(根据其文档,据说更快)方法是:
Set<String> jKeywords = new HashSet<String>();
Collections.addAll(jKeywords, aryKeywords);
或者以内联方式指定它们(以反射(reflect)乔恩的答案):
Collections.addAll(jKeywords, "abstract", "asset", "boolean", /* ... */);
关于java - 有没有更好的方法可以一次向集合中添加多个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5786502/