我对 Java Collection
对象有一些疑问...
- 当我们将对象添加到
HashSet
或HashMap
等集合中时,对象内部如何存储? - 为什么
Hashtable
不允许null
值?
最佳答案
您没有向集合中添加对象。您正在添加引用。
至于为什么HashTable
不允许null
键和值——这只是一个设计决策;在某些情况下,禁止使用空键很有帮助,而在其他情况下则很烦人。例如,HashMap
确实允许 null 键和值。禁止 null 的原因有多种:
通常空键或空值表示调用代码中存在编程错误。在插入时拒绝此操作比等到代码获取值然后出现意外 null 更容易找到错误。
如果您知道映射中的值不能为空,那么您不需要单独检查包含情况,然后提取:您可以提取,并且如果结果为 null,您知道 key 丢失了。
在 map 实现中处理空键需要更多的工作。虽然空值有时有用,但空键几乎从不有用。
关于java - 关于采集框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249224/