Summary of common methods in Java's HashMap traversing HashMap printing HashMap sorting according to the value of the HashMap
HashMap is a very useful tool in programming and is used very frequently, so this article briefly summarizes the common methods of hashmap
Iter can be obtained through the entryset and then traversed one by one
Iterator it = mp.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry)it.next(); System.out.println(pairs.getKey() + " = " + pairs.getValue()); }
It can also be traversed directly by a simple for loop
Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); }
public static void printMap(Map mp) { Iterator it = mp.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry)it.next(); System.out.println(pairs.getKey() + " = " + pairs.getValue()); it.remove(); // avoids a ConcurrentModificationException } }
class ValueComparator implements Comparator<String> { Map<String, Integer> base; public ValueComparator(Map<String, Integer> base) { this.base = base; } public int compare(String a, String b) { if (base.get(a) >= base.get(b)) { return -1; } else { return 1; } // returning 0 would merge keys } }
HashMap<String, Integer> countMap = new HashMap<String, Integer>(); //add a lot of entries countMap.put("a", 10); countMap.put("b", 20); ValueComparator vc = new ValueComparator(countMap); TreeMap<String,Integer> sortedMap = new TreeMap<String,Integer>(vc); sortedMap.putAll(countMap); printMap(sortedMap);
This approach is the most voted on stackoverflow, borrowing from the treeMap constructor