TreeSet是JDK实现好了的排序的集合类,他默认按照ASCII来排序,你的Student要想放在TrseSet里面就要实现comparable接口,来制定你的Student类来按什么逻辑排序,不然的话TreeSet怎么知道你是按什么逻辑排序的呢。他默认按ASCII排序,但是你的Student类没有实现排序逻辑,TreeSet当然不知道怎么给你排序了。
//System.out.println("Hello World!");
Student st1=new Student("xx","E01",false,90);
Student st2=new Student("xxx","E03",true,60);
Student st3=new Student("ff","E034",false,70);
Student st4=new Student("rrf","E02",true,44);
List
ts.add(st1);
ts.add(st2);
ts.add(st3);
ts.add(st4);
Comparet com=new Comparet();
Collections.sort(ts,com);
Student[] stu=new Student[ts.size()];
int i=0;
while(ts.size()!=0){
stu[i]=(Student)ts.remove(0);
i++;
}
for(int j=0;j
System.out.print(stu[j].name +" ");
}
可以这样子
Comparet com = new Comparet();
TreeSet
用比较器作为ts的构造参数,不过我看完你的代码还是没有明白为啥要用pollFirst方法
treeSet的特点:不可重复可排序
使用treeSet进行排序的时候,需要注意的地方:
1、在使用treeSet进行排序的时候,如果数据不能排序会报cannot be cast to java.lang.Comparable
2、对于不能排序的数据,有两种方法可以实现排序:
a、对于排序的实体类实现java.lang.comparable接口重写compareTo方法