Java记录 -60- TreeSet抛出ClassCastException
来源:互联网 发布:襄阳移动云计算招聘 编辑:程序博客网 时间:2024/06/13 22:03
TreeSet实现了SortedSet也实现了Set,但它不是随便一个对象都能存储:
public class TreeSetTest { public static void main(String[] args){ TreeSet tree = new TreeSet(); tree.add(new Pepole("zhangsan")); tree.add(new Pepole("lisi")); System.out.println(tree); }}class Pepole{ int age; String name; public Pepole(String name){ this.name = name; }}
执行上面的代码会得到下面的异常信息:
Exception in thread "main" java.lang.ClassCastException: my.set.Pepole cannot be cast to java.lang.Comparable at java.util.TreeMap.put(TreeMap.java:542) at java.util.TreeSet.add(TreeSet.java:238) at my.set.TreeSetTest.main(TreeSetTest.java:10)
上面的异常出现在往TreeSet里放第二个对象时报的异常,放置第一个的时候没有问题。
放置第二个对象时会用第二对象和TreeSet里的对象进行比较,看是否重复;然而我们自己定义的Pepole没有指定排序规则,所以会抛出异常。
查看TreeSet的add方法可以发现其有这么一个提示:
ClassCastException
- 如果指定对象无法与此 set 的当前元素进行比较
阅读全文
0 0
- Java记录 -60- TreeSet抛出ClassCastException
- 关于抛出java.lang.ClassCastException
- jpa query抛出 java.lang.ClassCastException: java.lang.Integer
- 【Java】ArrayList 的 toArray() 方法抛出 ClassCastException 异常
- 抛出 java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to andr异常
- Java ClassCastException
- TreeSet在add对象时报ClassCastException错误
- JAVA TreeSet
- java TreeSet
- java/TreeSet
- Java - TreeSet
- Java TreeSet
- Java TreeSet
- java TreeSet
- 向TreeSet集合中添加元素出现ClassCastException问题
- java.lang.ClassCastException翻译
- java.lang.ClassCastException
- java.lang.ClassCastException问题
- ZooKeeper故障处理
- 前端页面有哪三层构成,分别是什么?作用是什么?
- Java记录 -57- Object的equals、hashcode和toString方法
- Java记录 -58- Iterator 迭代器
- Java记录 -59- SortedSet
- Java记录 -60- TreeSet抛出ClassCastException
- Java记录 -61- 比较器Comparator
- Java记录 -62- java.util.Collections
- Leetcode 581 Shortest Unsorted Continuous Subarray
- ZooKeeper锁服务
- ZooKeeper观察节点
- 二叉链表
- zookeeper运行优化
- Android 切换夜间模式的简单实现