MST

星途 面试题库

面试题:Java TreeMap自定义比较器的基本实现

请描述如何在Java TreeMap中通过实现Comparator接口来自定义比较器,假设有一个包含学生成绩的TreeMap,要求按照成绩从高到低排序,给出关键代码示例。
30.1万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 自定义比较器
    • 实现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);
    }
}
  1. 使用自定义比较器创建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中添加元素时,会按照成绩从高到低进行排序。