V.S*_*V.S 2 java hashset treeset
为什么加null在HashSet没有抛出Exception,但添加null在TreeSet抛出异常。
Set<String> s = new TreeSet<String>();
s.add(null);
Run Code Online (Sandbox Code Playgroud)
抛出 NullPointerException
Set<String> s = new HashSet<String>();
Run Code Online (Sandbox Code Playgroud)
允许Null添加值。
小智 6
因为TreeSet的基础数据结构是Red-Black tree,所以它是二进制搜索树,因此被排序。为了对其进行排序,必须有一个比较器来确定一个值是否等于,小于或大于另一个值。默认的Comparator不是null安全的,但是,如果您编写自己的支持null的Comparator,那么将null用作键将没有问题。
| 归档时间: |
|
| 查看次数: |
9060 次 |
| 最近记录: |