【发布时间】:2012-03-21 06:39:32
【问题描述】:
以下输出的合理性是什么? null 元素被 list 和 map 区别对待。
List<Object> hoo = new ArrayList<Object>() {
{
add(null);
add(null);
}
};
Map<Object, Object> bar = new HashMap<Object, Object>() {
{
put(null, null);
put(null, null);
put(null, null);
}
};
System.err.println("hoo:" + hoo.size());
System.err.println("bar:" + bar.size());
输出:
hoo:2
bar:1
【问题讨论】:
-
您期望什么?对于任何单个非空对象,您也会看到相同的结果。相同的值(显然)被列表和映射区别对待,仅此而已。