package java8; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; /** * @Author : yion * @Date : 2017. 6. 17. * @Description : */ public class Java8Example2 { public static void main(String[] args) { //3 apple, 2 banana, others 1 List items = Arrays.asList("apple", "apple", "banana", "apple", "orange", "banana", "papaya"); Map result = items.stream().collect( Collectors.groupingBy( Function.identity(), Collectors.counting() ) ); Map finalMap = new LinkedHashMap<>(); //Sort a map and add to finalMap result.entrySet().stream() .sorted(Map.Entry.comparingByValue() .reversed()).forEachOrdered(e -> finalMap.put(e.getKey(), e.getValue())); System.out.println(finalMap); } }