如果将 `Student` 类从实现 `Comparable<Student>` 接口改为实现 `Comparator<Student>` 接口,并重新定义一个 `Comparator` 实现类,通过 `TreeMap<Student, String> treeMap = new TreeMap<>(new StudentComparator());` 的方式创建 `TreeMap`,下列关于 `StudentComparator` 的 `compare` 方法实现,哪一项能够保证 `treeMap` 中键的排序规则与原代码 `compareTo` 方法的排序规则一致?
答案解析
原代码中的 `compareTo` 方法先按姓名升序排序,姓名相同时按年龄升序排序。选项 A 错误,仅按照年龄排序,与原代码不一致。选项 B 正确,与原代码逻辑一致,先比较姓名,相同则比较年龄。选项 C 错误,该排序规则首先按姓名降序排序,与原代码不一致。选项 D 错误,虽然 `toString` 方法中包含姓名和年龄信息,但按字符串比较的方式,排序结果与原代码的排序规则不一致。
正确答案:B