以下是一个按值排序的树图比较器的解决方法的示例代码:
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
public class ValueComparator {
public static void main(String[] args) {
// 创建一个包含键值对的 Map
Map map = new TreeMap<>();
map.put("apple", 5);
map.put("banana", 3);
map.put("orange", 7);
map.put("grape", 2);
// 使用自定义的比较器按值对 Map 进行排序
Map sortedMap = sortByValue(map);
// 输出排序后的结果
for (Map.Entry entry : sortedMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
public static > Map sortByValue(Map map) {
// 创建一个比较器,按值进行比较
Comparator> valueComparator = new Comparator>() {
@Override
public int compare(Map.Entry e1, Map.Entry e2) {
return e1.getValue().compareTo(e2.getValue());
}
};
// 使用比较器对 Map 的键值对进行排序
Map sortedMap = new TreeMap<>(valueComparator);
sortedMap.putAll(map);
return sortedMap;
}
}
这段代码创建了一个包含键值对的 Map,并使用自定义的比较器按值对 Map 进行排序。最后输出排序后的结果。
该比较器实现了 Comparator
接口,重写了 compare
方法,在比较器中通过 e1.getValue().compareTo(e2.getValue())
来比较键值对的值,并返回比较结果。
sortByValue
方法接受一个 Map 参数,并使用比较器对 Map 的键值对进行排序。最后返回排序后的 Map。
在示例中,使用了 TreeMap
来存储排序后的键值对,因为 TreeMap
是一个基于红黑树实现的有序 Map。
上一篇:按值排序的列表的最近日期
下一篇:按值排序的数组排序