哪些java集合接受添加空值?

Ija*_*jaz 7 java collections linked-list

我知道 Set 和 Map 接受 null 值,今天我刚刚发现 LinkedList 也接受 null 值,例如

   map.put(null, 1);
   set.add(null);
   linkedList.add(null)
Run Code Online (Sandbox Code Playgroud)

是否还有其他允许存储空值的集合?只需发帖即可在一个地方获得一份全面的列表以及每个列表的原因。

Gio*_*uri 9

SetMap是接口。他们有几种 Java 实现。

流行的实现Map是:

  1. HashMap- 接受一null
  2. Hashtable- 不接受任何null钥匙
  3. TreeMap- 不接受任何null钥匙
  4. LinkedHashMap- 接受一null

null可以添加任意数量的值作为上述任何实现中的


流行的实现Set是:

  1. HashSet- 接受一个null元素
  2. TreeSet- 不接受任何null元素
  3. LinkedHashSet- 接受一个null元素

List、 、 likeArrayList或的任何实现都LinkedList可以接受nulls。

  • 毫无疑问,流行的 List 实现确实接受空值。然而,[List.add() 的文档](https://docs.oracle.com/javase/8/docs/api/java/util/List.html#add-E-) 说,“支持的列表此操作可能会限制可以添加到此列表中的元素。特别是,某些列表将拒绝添加空元素......”。它接着说,“列表类应该在其文档中明确指定对可以添加哪些元素的任何限制。” 因此,如有疑问,请查阅 Javadoc。 (3认同)