1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| import java.util.*;
public class MapUtil {
public static void show(Map<String, Integer> map) { for (Map.Entry<String, Integer> entry: map.entrySet()) { System.out.println(entry.getKey() + " " + entry.getValue()); } System.out.println("======================="); System.out.println(); }
public static Map<String, Integer> sortByValueAsc(Map<String, Integer> map) { List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet()); Collections.sort(list, (e1, e2) -> e1.getValue().compareTo(e2.getValue())); Map<String, Integer> sortedMap = new LinkedHashMap<>(); for (Map.Entry<String, Integer> entry: list) { sortedMap.put(entry.getKey(), entry.getValue()); } return sortedMap; }
public static Map<String, Integer> sortByValueDesc(Map<String, Integer> map) { List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet()); Collections.sort(list, (e1, e2) -> e2.getValue().compareTo(e1.getValue())); Map<String, Integer> sortedMap = new LinkedHashMap<>(); for (Map.Entry<String, Integer> entry: list) { sortedMap.put(entry.getKey(), entry.getValue()); } return sortedMap; }
public static Map<String, Integer> sortByKeyByTreeMapAsc(Map<String, Integer> map) {
Map<String, Integer> sortedMap = new TreeMap<>(Comparator.naturalOrder()); sortedMap.putAll(map); return sortedMap; }
public static Map<String, Integer> sortByKeyByTreeMapDesc(Map<String, Integer> map) {
Map<String, Integer> sortedMap = new TreeMap<>(Comparator.reverseOrder()); sortedMap.putAll(map); return sortedMap; }
public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("boss", 2); map.put("abuse", 1); map.put("unit", 3); map.put("duty", 4);
System.out.println("🚀 SORT BY VALUE ASC:"); Map<String, Integer> sortedMapAsc = sortByValueAsc(map); show(sortedMapAsc);
System.out.println("🚀 SORT BY VALUE DESC"); Map<String, Integer> sortedMapDesc = sortByValueDesc(map); show(sortedMapDesc);
System.out.println("🚀 SORT BY KEY ASC"); Map<String, Integer> sortedByKeyAsc = sortByKeyByTreeMapAsc(map); show(sortedByKeyAsc);
System.out.println("🚀 SORT BY KEY DESC"); Map<String, Integer> sortedByKeyDesc = sortByKeyByTreeMapDesc(map); show(sortedByKeyDesc);
} }
|