本文共 1241 字,大约阅读时间需要 4 分钟。
升序
和降序
排列。package test;import java.util.ArrayList;import java.util.Comparator;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;public class T_00 { public static void main(String[] args) { Mapm = new LinkedHashMap (); // 先构建一个map m.put("Apple", 3); m.put("Banana", 2); m.put("Pear", 1); m.put("Hotdog", 4); for (String k: m.keySet()) { System.out.println(k+" "+m.get(k)); } Map m2 = reverseMap(m); System.out.println("====按照value排序后===="); for (String k: m2.keySet()) { System.out.println(k+" "+m2.get(k)); } } /** * 将一个Map按照value排序 * @param m * @return */ public static Map reverseMap(Map m){ List > list = new ArrayList<>(m.entrySet()); // 升序 list.sort(Map.Entry.comparingByValue()); // 降序// list.sort(Map.Entry.comparingByValue(Comparator.reverseOrder())); Map m2 = new LinkedHashMap (); // 打印这个list,会得到一个用=号连着的值 // 然后用split切分即可 for (int i = 0; i < list.size(); i++) { // System.out.println(list.get(i)); String key = list.get(i).toString().split("=")[0]; int value = Integer.parseInt(list.get(i).toString().split("=")[1]); m2.put(key, value); } return m2; } }
转载地址:http://pjtez.baihongyu.com/