java - 关于采集框架

标签 java collections hashmap hashtable hashset

我对 Java Collection 对象有一些疑问...

  1. 当我们将对象添加到HashSetHashMap等集合中时,对象内部如何存储?
  2. 为什么 Hashtable 不允许 null 值?

最佳答案

您没有向集合中添加对象。您正在添加引用

至于为什么HashTable不允许null键和值——这只是一个设计决策;在某些情况下,禁止使用空键很有帮助,而在其他情况下则很烦人。例如,HashMap 确实允许 null 键和值。禁止 null 的原因有多种:

  • 通常空键空值表示调用代码中存在编程错误。在插入时拒绝此操作比等到代码获取值然后出现意外 null 更容易找到错误。

  • 如果您知道映射中的值不能为空,那么您不需要单独检查包含情况,然后提取:您可以提取,并且如果结果为 null,您知道 key 丢失了。

  • 在 map 实现中处理空键需要更多的工作。虽然空值有时有用,但空键几乎从不有用。

关于java - 关于采集框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11249224/

相关文章:

java - 检查 hashmap 是否包含特定值以外的值

java - 通用对象的哈希函数

java - 在 Jetty 实例之间共享 Memcached

java - 单击 Android ExpandableListView 会导致子项目出现 "ID Not Found"错误

Java 客户端和服务器

c# - 如何枚举实现通用接口(interface)的所有项?

java - 如何限制tomcat-8上运行的JSP页面的客户端连接数?

java - 集合排序 - 正序、0、负序

java - 如何为 LinkedTransferQueue 提供容量?

java - 如何将 HashMap 转换/转换为 LinkedHashMap?