Javar sort a map in descending/reverse order

Javar sort a map in descending/reverse order
/**
 * @author lautturi.com 
 * Java example: how to sort a hashmap/treemap/linkedmapmap 
 in natural/ascending/descending/reverse order in java
 */

import java.util.*;
import java.util.stream.Collectors;

public class Lautturi {
	public static void main(String[] args) {

		HashMap<String, Integer> fruits = new HashMap<>();

		fruits.put("Apple", 21);
		fruits.put("Banana", 12);
		fruits.put("Cherry", 15);
		fruits.put("Orange", 35);
		fruits.put("Lautturi", 32);

		Map<String, Integer> sortedFruits = fruits.entrySet()
				.stream()
				
//              .sorted(Map.Entry.comparingByValue()) // sorting in natural/ascending order
//              .sorted(Map.Entry.comparingByValue((o1, o2) -> Integer.compare(o1, o2))) // sorting in natural/ascending order
//              .sorted(Map.Entry.comparingByValue((o1, o2) -> Integer.compare(o2, o1))) // sorting in reverse/descending order
//              .sorted((x, y) -> x.getValue()-y.getValue())  // sorting in natural/ascending order
//              .sorted((x, y) -> y.getValue()-x.getValue())   // sorting map/hashmap in reverse/descending order 
//              .sorted(Map.Entry.comparingByValue(Comparator.naturalOrder())) // sorting hashmap/map in natural/ascending order
                .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))  // sorting map in reverse/descending order

				.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));
		System.out.println("original map:" + fruits);
		System.out.println("sorted map:" + sortedFruits);

	}
}
So‮w:ecru‬ww.lautturi.com

output:

original map:{Apple=21, Cherry=15, Lautturi=32, Orange=35, Banana=12}
sorted map:{Orange=35, Lautturi=32, Apple=21, Cherry=15, Banana=12}
Created Time:2017-10-05 14:58:46  Author:lautturi