TreeSet---比较器
自然排序
重写Comparable
public int compareTo(Student s){
// return 0;//不存储
// return 1; //升序
// return -1;//降序
int num = this.age - s.age; //升序,互换–>降序
int num2 = num == 0 ? this.name.compareTo(s.name) : num; //年龄一致按姓名
return num2;
}
Comparator
比较器
可在测试类中
TreeSet< Student > s = new TreeSet<>();
括号中进行定义比较器
TreeSet< Student > s = new TreeSet<>(new Comparator< Student >(){
@Override
public int compare(Student s1, Student s2) { //s1为测试函数中的this,s2为新建类Student输入
int num = s1.getAge() - s2.getAge();
int num2 = num == 0 ? s1.getName().compareTo(s2.getName()):num;
return num2;
}
});
compareTo 的返回值
String a = “abcdef”;
String b = “abcdef”;
//相同:0
int num = a.compareTo(b);
System.out.println(num);
//元素一致返回长度:1
String c = “abcde”;
System.out.println(a.compareTo©);
//-2 不同,按首字母的ASCII码
String d = “ccdef”;
System.out.println(a.compareTo(d));
//-1 不同位的差值
String e = “abeef”;
System.out.println(a.compareTo(e));