HashSet 本质上用于对项目进行恒定时间查找。为什么需要查找空项?
最佳答案
Why would there be a need to look up for a null item?
因为null
很可能是一个项目的有效值...根据程序员开发的程序设计!!
(IMO,在大多数情况下这可能是一个坏主意,但实际上这并不取决于你和我来做出这个决定。)
一旦您接受程序员可以拥有 null
的有效用例。项,那么 HashSet
就有意义了处理null
这样程序员就不需要处理 null
作为将其放入集合时的特殊情况。
在设计 API 时,API 设计者认为应该如何使用 API 与 API 用户认为应该如何使用 API 之间存在着矛盾。对于 API 设计者来说,试图过于强烈地强加自己的观点是一个坏主意,尤其是当理由有争议时。
通用性和效率之间也可能存在紧张关系。在这种情况下,我们需要检查允许 null
的实际运行时间成本。项目。从表面上看,需要进行额外的测试来查看某个项目是否是 null
。然而,对代码进行更深入的分析很可能会发现替代版本有一个隐式 null
在引擎盖下进行测试...处理 NullPointerException
的情况需要抛出。
关于java - null 可以作为 Java 中 HashSet 的元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40066563/