I\'m new to Java 8, not sure how to use streams and it\'s methods to sort. If I have map as below, how to sort this map by value to take only top 10 entries using Java 8.
If you want sort by integer or float value of value object
Map map = new HashMap<>();
map.put("g",new Person(5, "EE", 51, Person.SEX.FEMALE, "A"));
map.put("a",new Person(4, "DD", 25, Person.SEX.MALE, "D"));
map.put("e",new Person(3, "CC", 44, Person.SEX.FEMALE,"B"));
You can use,
Map sortedNewMap = map.entrySet().stream().sorted((e1,e2)->
Integer.compare(e1.getValue().getAge(), e2.getValue().getAge()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
(e1, e2) -> e1, LinkedHashMap::new));