Comparator 接口的 reverseOrder() 方法指定以相反的顺序(降序)对元素进行排序。
1.2 实现Comparable接口,并重写compareTo()方法:
示例:对Person对象,先按照age升序排列,如果age相同,再按照name升序排列
重点 class Person implements Comparable{} public int compareTo(Person p1){}
Class Person
class Person implements Comparable{
String name;
int age;
public Person(String name,int age){
this.name =name;
this.age = age;
}@Override
public String toString(){
return "Person:name="+this.name+" age="+this.age;
}//treeSet在add一个元素的时候都会在内部调用多次这个方法,让新填入的元素与已有元素两两进行比较,最终确定新添入的元素到底放在哪里
@Override
public int compareTo(Person p1) {
//先按照age升序排列,如果age相同,再按照name升序排列
if(this.age == p1.age){
//字符串默认已经实现了compareTo方法
return this.name.compareTo(p1.name);
}else{
//升序排列
return this.age -p1.age;
}
}
}
test1.java
public class test1 {
public static void main(String[] args) {
//TreeSet有序
TreeSet set =new TreeSet<>();
//初始化几个实例
set.add(new Person("A",14));
set.add(new Person("E",15));
set.add(new Person("F",12));
set.add(new Person("B",11));
set.add(new Person("G",17));
set.add(new Person("H",15));
set.add(new Person("A",10));
set.add(new Person("C",19));
for (Person person : set) {
System.out.println(person);
}
}
}