【发布时间】:2013-01-24 08:18:05
【问题描述】:
我想知道为什么HashSet、LinkedHashSet 和TreeSet 的实现不允许空元素? 每当我尝试运行以下代码时,它都会引发空指针异常。
public static void main(String[] args) {
HashSet<Integer> hashSet = new HashSet<Integer>();
hashSet.add(2);
hashSet.add(5);
hashSet.add(1);
// hashSet.add(null); will throw null pointer
hashSet.add(999);
hashSet.add(10);
hashSet.add(10);
hashSet.add(11);
hashSet.add(9);
hashSet.add(10);
hashSet.add(000);
hashSet.add(999);
hashSet.add(0);
Iterator<Integer> it = hashSet.iterator();
while(it.hasNext()){
int i = it.next();
System.out.print(i+" ");
}
}
请指导我。
【问题讨论】:
-
误导性标题。例如。
HashSet文档明确声明 此类允许 null 元素。 -
HashSet 和 LinkedHashSet 允许空值。只是,TreeSet 不允许。