//比较器排序
TreeMap<Student,String> tm = new TreeMap<>(
new Comparator<Student>() {
@Override
public int compare(Student t1, Student t2) {
//按照年龄排序
int result = t1.getAge() - t2.getAge();
//如果年龄一致,使用姓名排序
result = result == 0?t1.getName().compareTo(t2.getName()) : result;
return result;
}
}
);
Student s1 = new Student("小a",22);
Student s2 = new Student("小b",26);
Student s3 = new Student("小c",23);
Student s4 = new Student("小d",24);
tm.put(s1, "福建");
tm.put(s2, "北京");
tm.put(s3, "天津");
tm.put(s4, "上海");
tm.forEach(
(Student key,String value)->{
System.out.println(key + "----------" + value );
}
);
//自然排序
//让Student实现Comparable接口并重写compareTo方法
@Override
public int compareTo(Student student) {
//按照年龄排序
int result = this.getAge() - student.getAge();
//如果年龄一致,使用姓名排序
result = result == 0?this.getName().compareTo(student.getName()) : result;
return result;
}