//TreeSet 集合在Add时报错cannot be cast to java.lang.Comparable
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Set<person> set = new TreeSet<person>(new AgeComparator());
person p1 = new person("zhangsan", 16);
person p2 = new person("lisi", 52);
person p3 = new person("wangwu", 95);
set.add(p1);
set.add(p2);
set.add(p3);
Iterator<person> itt = set.iterator();
while(itt.hasNext()){
System.out.println(itt.next());
}
}
}
//需要继承使用比较器,然后不再报错
class AgeComparator implements Comparator {
public int compare(Object object1, Object object2) {// 实现接口中的方法
person p1 = (person) object1; // 强制转换
person p2 = (person) object2;
return new Double(p1.getAge()).compareTo(new Double(p2.getAge()))*(-1); //降序
}
}
person类不再显示
TreeSet 集合在Add时报错cannot be cast to java.lang.Comparable
最新推荐文章于 2023-06-12 22:16:47 发布