一、TreeSet
Java的TreeSet通过TreeMap来实现,具有自然排序的功能。
在默认情况下,元素不允许为null值,元素必须是相同类型,元素必须实现了Comparable接口;否则会出现java.lang.ClassCastException。
可以通过设置Comparator接口的实例,来实现元素允许为null值,元素为不同类型。
二、代码实现
(1)默认情况
TreeSet treeSet=new TreeSet();
treeSet.add(1);
treeSet.add(2.0);输出结果
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
at java.lang.Double.compareTo(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at cn.test.Test.main(Test.java:9)(2)null值
TreeSet treeSet=new TreeSet((o1,o2)->{
return Objects.toString(o1).compareTo(Objects.toString(o2));
});
treeSet.add(1);
treeSet.add(null);(3)不同类型
TreeSet treeSet=new TreeSet((o1,o2)->{
return Double.valueOf(o1.toString()).compareTo(Double.valueOf(o2.toString()));
});
treeSet.add(1);
treeSet.add(2.0);
本文详细介绍了Java中TreeSet的使用方法,包括默认情况下元素的限制、如何允许null值以及如何存储不同类型的元素。提供了具体示例代码,展示了如何通过Comparator接口自定义排序规则。
682

被折叠的 条评论
为什么被折叠?



