HashSet、LinkedHashSet、およびTreeSet実装でnull要素が許可されない理由を知りたいですか? 次のコードをコンパイルしようとすると、nullポインタがスローされます。なぜSetインターフェイスはnull要素を許可しないのですか?
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+" ");
}
}
私をご案内ください。
誤解を招くタイトル()メソッドのTreeMap
null
値のput()
方法は、プットのコード次のように許可されていません呼び出します。例えば。 'HashSet'ドキュメントは明示的に*このクラスがヌル要素を許可すると述べています* – Abdull