31. Sort Map Key and Value using Comparator and Comparable - prabhatrocks07/Core-Java-Programming GitHub Wiki

public class SortMapByKeyValue {

public static void main(String[] args) {
	Map<String, Integer> map = new HashMap<>();
	map.put("one", 1);
	map.put("two", 2);
	map.put("three", 3);
	map.put("four", 4);
	map.put("five", 5);
	
	System.out.println("Unsorted Map........" + map);
	
	System.out.println("Sorting By Key......" + SortMap.getByKey(map));
	
	System.out.println("Sorting By Value......" + SortMap.getByValue(map));

}

}

class SortMap {
public static Map<String, Integer> getByKey(Map<String, Integer> map){
	Map<String, Integer> sortedMap = new TreeMap<>();
	sortedMap.putAll(map);
	return sortedMap;
}

public static Map<String, Integer> getByValue(Map<String, Integer> map){
	Map<String, Integer> sortedMap = new TreeMap<>(new MapValueComparator(map));
	sortedMap.putAll(map);
	return sortedMap;
}
}

class MapValueComparator implements Comparator<String> {
Map<String, Integer> map;

public MapValueComparator(Map<String, Integer> map) {
	this.map = map;
}

@Override
public int compare(String key1, String key2) {
	return map.get(key1).compareTo(map.get(key2));
}

/*@Override
public int compare(Object key1, Object key2) {
	Comparable<Integer> valueA = map.get(key1);
	Comparable<Integer> valueB = map.get(key2);
	return valueA.compareTo((Integer) valueB);
}*/
}
⚠️ **GitHub.com Fallback** ⚠️