@@ -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