爲什麼添加在HashSet
null
不會引發Exception
,但在TreeSet
拋出異常增加null
。爲什麼在HashSet中添加空不拋出異常,但在TreeSet中拋出異常增加空
Set<String> s = new TreeSet<String>();
s.add(null);
拋出NullPointerException
Set<String> s = new HashSet<String>();
允許添加Null
值。
爲什麼添加在HashSet
null
不會引發Exception
,但在TreeSet
拋出異常增加null
。爲什麼在HashSet中添加空不拋出異常,但在TreeSet中拋出異常增加空
Set<String> s = new TreeSet<String>();
s.add(null);
拋出NullPointerException
Set<String> s = new HashSet<String>();
允許添加Null
值。
由於TreeSet的基礎數據結構是Red-Black tree,它是二叉搜索樹,因此被排序。爲了對它進行排序,必須有一個比較器來確定一個值是否等於,小於或大於另一個值。默認的比較器不是無效的,如果你編寫自己的支持null的比較器,那麼使用null作爲一個鍵是沒問題的。
感謝哥們......知道了 –