[英]Why adding null in HashSet does not throw Exception,but adding null in TreeSet throw Exception
为什么在HashSet
中添加null
不会引发Exception
,而是在TreeSet
添加null
引发Exception。
Set<String> s = new TreeSet<String>();
s.add(null);
抛出NullPointerException
Set<String> s = new HashSet<String>();
允许添加Null
值。
因为TreeSet的基础数据结构是Red-Black tree ,所以它是二进制搜索树,因此被排序。 为了对其进行排序,必须有一个比较器来确定一个值是否等于,小于或大于另一个值。 默认的Comparator不是null安全的,但是,如果您编写自己的支持null的Comparator,那么将null用作键将没有问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.