java - Set.of 与 Collections.singleton

标签 java set singleton java-9

<分区>

既然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 中访问的全局对象并从文件加载信息

swift - 在 Swift 中通过下标访问单例属性

java - 计算 jTable netbeans 中某一列中值的总和

java - Java 1.6 中的枚举类主体特性

java - Spring Data Jpa OneToMany 同时保存子实体和父实体?

language-agnostic - 如何计算具有重复的集合中所有可能的唯一子集的总数?

java - Spring mvc - 将 xml 文本字符串发送到 Controller

java - 无法使用 sqljdbc4.jar 连接到 MSSQL Server 2012

java - 枚举和单例 - 顶级与嵌套枚举