Skip to content

Commit cbe60aa

Browse files
author
yennj12
committed
add
1 parent 8c73a5c commit cbe60aa

File tree

1 file changed

+43
-8
lines changed

1 file changed

+43
-8
lines changed

leetcode_java/src/main/java/dev/workspace7.java

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,52 @@ public static void main(String[] args) {
5454
// }
5555

5656
// ------------------- TEST 6 : map put, get
57-
Map<String, Integer> map = new HashMap<>();
58-
map.put("a", 1);
59-
map.put("b", 2);
60-
map.put("c", 3);
57+
// Map<String, Integer> map = new HashMap<>();
58+
// map.put("a", 1);
59+
// map.put("b", 2);
60+
// map.put("c", 3);
61+
//
62+
// System.out.println(">>> (before) map = " + map);
63+
// map.put("a", 10);
64+
// //map.put("c", 4);
65+
//
66+
// System.out.println(">>> (after) map = " + map);
6167

62-
System.out.println(">>> (before) map = " + map);
63-
map.put("a", 10);
64-
//map.put("c", 4);
6568

66-
System.out.println(">>> (after) map = " + map);
69+
// ------------------- TEST 6 : sort map on val, key len
70+
Map<String, Integer> map = new HashMap<>();
71+
map.put("apple", 3);
72+
map.put("banana", 2);
73+
map.put("lem", 3);
74+
map.put("kiwi", 5);
75+
map.put("peachhh", 3);
76+
77+
System.out.println("Original map: " + map);
78+
79+
//Map<String, Integer> sortedMap = sortMapByValueAndKeyLength(map);
80+
//Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
81+
// List<Map.Entry<String, Integer>> entryList = new ArrayList<>(map.entrySet());
82+
//List<Set<Map.Entry<String, Integer>>> entryList = Arrays.asList(map.entrySet());
83+
List<Map.Entry<String, Integer>> entryList = new ArrayList<>(map.entrySet());
84+
85+
// sort map
86+
Collections.sort(entryList, (Comparator<Map.Entry<String, Integer>>) (entry1, entry2) -> {
87+
// if(o1.)
88+
int valueCompare = entry2.getValue().compareTo(entry1.getValue());
89+
if(valueCompare == 0) {
90+
return entry1.getKey().length() - entry2.getKey().length();
91+
}
92+
return valueCompare;
93+
});
94+
95+
96+
// NOTE !!! use `LinkedHashMap` keep ordering in map
97+
Map<String, Integer> sortedMap = new LinkedHashMap<>();
98+
for (Map.Entry<String, Integer> entry : entryList) {
99+
sortedMap.put(entry.getKey(), entry.getValue());
100+
}
67101

102+
System.out.println("Sorted map: " + sortedMap);
68103
}
69104

70105

0 commit comments

Comments
 (0)