新手刚学到TreeSet集合遇到一个问题,请教各位大神解答一下
TreeSet ts = new TreeSet();
ts.add(new Person("zhangsan",28));
// ts.add(new Person("xiaoqiang",21));
// ts.add(new Person("wangu",23));
// ts.add(new Person("lisi",29));
Iterator it = ts.iterator();
while(it.hasNext()) {
Person p = (Person)it.next();
System.out.println(p.getName()+"....."+p.getAge());
}
报的错误:
Exception in thread "main" java.lang.ClassCastException: cn.itcast.bean.Person cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at cn.itcast.treeset.demo.TreeSetDemo.main(TreeSetDemo.java:17)
这个是为什么呢?我是照着毕向东的java基础视频学的,他的视频里,把其他三个添加的元素注释掉后,是可以取出第一个zhangsam,28的元素的。但是我为什么这样会报错呢?有点不太理解了。
希望各位帮帮忙解答下。
另外帮忙告知下这个集合什么意思,为什么要实现Comparable接口复写里面的compareTo的方法呢?