<分区>
既然Java 9
引入了Set.of(E e)
的不可变实现,我们还需要使用Collections.singleton(E e)
?后一个的用例是什么?
从这两个实现的源代码来看,似乎并不明显。除了 Set12
实现明确拒绝反序列化之外,我没有看到任何显着差异。
我个人会为所有新代码选择 Set.of(...)
至少因为时尚的观点(更短的代码,更少的导入)。但可能是我遗漏了一些关键点?
<分区>
既然Java 9
引入了Set.of(E e)
的不可变实现,我们还需要使用Collections.singleton(E e)
?后一个的用例是什么?
从这两个实现的源代码来看,似乎并不明显。除了 Set12
实现明确拒绝反序列化之外,我没有看到任何显着差异。
我个人会为所有新代码选择 Set.of(...)
至少因为时尚的观点(更短的代码,更少的导入)。但可能是我遗漏了一些关键点?
最佳答案
这两种方法的行为几乎相同。我能想到的唯一区别是 Collections.singleton()
允许 null
元素,而 Set.of()
不允许。
这会起作用:
Set<String> setofnull = Collections.singleton(null);
这不会(它会抛出 NullPointerException
):
Set<String> setofnull = Set.of(null);
如果您放入 Set
的元素不能为 null
,我也会使用 Set.of()
。
关于java - Set.of 与 Collections.singleton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56537884/
相关文章:
garbage-collection - 在 Julia 中高效优雅地迭代集合和数字的并集
c# - 如何创建一个启动后可在所有 MVC 和 WEB API 中访问的全局对象并从文件加载信息
java - 计算 jTable netbeans 中某一列中值的总和
java - Spring Data Jpa OneToMany 同时保存子实体和父实体?
language-agnostic - 如何计算具有重复的集合中所有可能的唯一子集的总数?
java - Spring mvc - 将 xml 文本字符串发送到 Controller