面试题答案
一键面试- 自定义比较器:
- 实现
Comparator
接口,重写compare
方法。 - 在
compare
方法中,根据成绩进行从高到低的比较。
- 实现
import java.util.Comparator;
import java.util.TreeMap;
class StudentGradeComparator implements Comparator<Integer> {
@Override
public int compare(Integer grade1, Integer grade2) {
// 从高到低排序,grade1大于grade2返回-1,小于返回1,相等返回0
return grade2.compareTo(grade1);
}
}
- 使用自定义比较器创建TreeMap:
public class TreeMapCustomSortExample {
public static void main(String[] args) {
TreeMap<String, Integer> studentGrades = new TreeMap<>(new StudentGradeComparator());
studentGrades.put("Alice", 85);
studentGrades.put("Bob", 90);
studentGrades.put("Charlie", 78);
for (String student : studentGrades.keySet()) {
System.out.println(student + " : " + studentGrades.get(student));
}
}
}
在上述代码中:
StudentGradeComparator
类实现了Comparator
接口,在compare
方法中,grade2.compareTo(grade1)
实现了成绩从高到低排序。TreeMap<String, Integer> studentGrades = new TreeMap<>(new StudentGradeComparator());
使用自定义的比较器创建了TreeMap
,这样在向TreeMap
中添加元素时,会按照成绩从高到低进行排序。