Drop Down

Thursday, February 7, 2019

Sort Map According to its Value (Used Comparator ,List & LinkedHashMap)


  • package sort_Map_byValue;
  • import java.util.*;

  • //Program to sort Map value
  • //Map--->copy entry to List--->sort List using comparator-->copy to new Map-->display
  • public class SortMapbyValue
  • {
  • public static void main(String[] args)
  • {
  • //Map create
  • Map <String,Integer> map = new HashMap<>();
  • map.put("A", 65);
  • map.put("B", 60);
  • map.put("C", 75);
  • map.put("D", 97);
  • map.put("E", 90);
  • map.put("F", 85);
  • map.put("G", 81);
  • map.put("H", 75);
  • //copy to List
  • //create linked List & pass entryset--> as it maintains the insertion order)
  • List<Map.Entry<String,Integer>> list = new LinkedList<>(map.entrySet());
  • //Sort List
  • //MyComparator mc = new MyComparator();
  • Collections.sort(list, new MyComparator());

  • //copy the sorted to new LinkedHashMap (temp)
  • Map<String,Integer> sortedMap = new LinkedHashMap<>();

  • for(Map.Entry<String, Integer> entry : list)
  • {
  • sortedMap.put(entry.getKey(), entry.getValue());
  • }
  • //Dispaly the Sorted Map (Soerted According to Value)

  • for(Map.Entry<String,Integer> entry : sortedMap.entrySet())
  • {
  • System.out.println(entry.getKey() +" : "+entry.getValue());
  • }

  • }

  • }
  • =================================================
  • package sort_Map_byValue;

  • import java.util.Comparator;
  • import java.util.Map;

  • public class MyComparator implements Comparator<Map.Entry<String, Integer>>
  • {

  • @Override
  • public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2)
  • {
  • return (o1.getValue()).compareTo(o2.getValue());
  • }

  • }
  • ==================================================

No comments:

Post a Comment

Java 8 Notes Pics