Java TreeMap可以按照
value 排序,可以通过
实现Comparator接口来
实现。具体步骤如下:
1. 创建一个
实现Comparator接口的类,重写compare方法,比较两个
value的大小。
2. 创建一个
TreeMap对象,并将
实现了Comparator接口的类作为参数传入。
3. 将需要
排序的
键 值对添加到
TreeMap中。
4. 使用entrySet()方法获取
TreeMap中的所有
键 值对,并将其转换为List。
5. 使用Collections.sort()方法对List进行
排序。
6. 遍历
排序后的List,输出
键 值对。
示例代码如下:
importjava.util.*;public classTreeMapSortByValue{public static void main(String[] args) {// 创建一个实现Comparator接口的类ValueComparator vc = newValueComparator();// 创建一个TreeMap对象,并将实现了Comparator接口的类作为参数传入TreeMap<String, Integer> map = newTreeMap<>(vc);// 将需要排序的键 值对添加到TreeMap中map.put("apple", 10);map.put("banana", 5);map.put("orange", 8);// 使用entrySet()方法获取TreeMap中的所有键 值对,并将其转换为ListList<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());// 使用Collections.sort()方法对List进行排序Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {@Overridepublic int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {return o1.getValue().compareTo(o2.getValue());}});// 遍历排序后的List,输出键 值对for (Map.Entry<String, Integer> entry : list) {System.out.println(entry.getKey() + " : " + entry.getValue());}}}//实现Comparator接口的类classValueComparator implements Comparator<String> {Map<String, Integer> map = new HashMap<>();publicValueComparator() {}publicValueComparator(Map<String, Integer> map) {this.map.putAll(map);}@Overridepublic int compare(String s1, String s2) {if (map.get(s1) >= map.get(s2)) {return 1;} else {return -1;}}}
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/11488.html