目前,这是我创建一个元素的 HashSet 的方式:
new HashSet<>(Arrays.asList("123"))
你能想出一种适用于 Java 8 的更短的方法吗?
我知道在 Java 9 中允许使用这种语法:
Set.of("123")
不幸的是,它在 Java 8 中不兼容。
最佳答案
如果您只需要一个集合,而不是哈希集,您可以使用 Collections.singleton("123")
。这会返回一个由一个元素组成的不可变集合,这就是 Set.of("123")
在 Java 9+ 中返回的内容。
请注意,Set.of(...)
和 singleton(...)
都没有声称返回一个哈希集,而只是一个单值不可变集。
如果您想要一个 HashSet
的实际实例,您可以转换为一个,但随后您会得到类似于您已经拥有的东西:
new HashSet<>(Collections.singleton("123"))
(但没有为 Arrays.asList(...)
创建不必要的数组)
关于Java 8 : What is the shortest way to initialize a hash set of one key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60372468/