List 可以加 null 吗?迭代器可以迭代 null 吗?¶
一、List 可以加 null¶
二、为什么可以¶
List 不限制元素是否为 null。
三、迭代器迭代 null¶
List<String> list = new ArrayList<>();
list.add("a");
list.add(null);
list.add("b");
for (String s : list) {
System.out.println(s); // a, null, b
}
迭代器返回 null,不会抛异常。
四、注意¶
- 用 for-each 要判空,否则 NPE。
- list.get(0) 是 null,用之前判空。
五、Set 呢¶
TreeSet 不允许 null(要排序,不能比较)。
六、Map 呢¶
- HashMap:key 一个 null,value 多个 null。
- TreeMap:key 不能 null。
一句话
除了 TreeSet/TreeMap,大多数集合都允许 null。