java - 有没有更好的方法可以一次向集合中添加多个单词?

标签 java hashset

我只是想知道,一次向 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/

相关文章:

java - 在不使用 Dagger 的情况下使用 Espresso ActivityTestRule 初始化时模拟 Activity 的 onCreate

java - 为什么我的 HashSet 中有重复数据?

java - HashSet中的填充率或者加载因子概念需要什么

java - MongoDB 与 Java : Finding the document with max value

java - XSLT 性能注意事项

java - 哈希集打印问题

java - 两个 Set 包含相同的元素,但它们不相等。为什么是这样的结果?

c++ - 如何解决自定义类对象的 unordered_set 哈希函数中的这个错误?

java - 启动 : applet not initialized error. 如何解决此问题?

java - 当我们按 id 过滤列表时,如何使用 HQL 一对多查询关系