Java 的 API Set界面状态:
For example, some implementations prohibit
null
elements and some have restrictions on the types of their elements
我正在寻找一个不需要排序的基本 Set 实现(因为 ArrayList 提供了 List 接口(interface))并且不允许 null
. TreeSet , HashSet , 和 LinkedHashSet都允许空元素。此外,TreeSet 要求元素实现 Comparable .
好像没有这个基本的Set
目前存在。有谁知道为什么?或者如果确实存在,我可以在哪里找到它?
[编辑]:我不想允许 null
s,因为稍后在代码中我的类将遍历集合中的所有元素并调用特定方法。 (我实际上使用的是 HashSet<MyRandomObject
>)。我宁愿快速失败也不愿稍后失败,或者由于 null
而意外地招致一些奇怪的行为。在集合中。
最佳答案
与扩展特定实现相比,您可以轻松编写 Set
的代理实现来检查 null
。这类似于 Collections.checkedSet
。除了适用于任何实现之外,您还可以确保您已经覆盖了所有适用的方法。通过扩展具体集合发现了许多缺陷,然后在以后的版本中添加了其他方法。
关于java - 是否有不允许空值的基本 Java Set 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/591115/