要以相反顺序排序,请将
Comparator.reverseOrder()作为参数传递给
comparingByValue。
要获取a
linkedHashMap,您必须明确要求使用4参数
toMap()。如果您未指定所需的地图类型,则将获得默认值,而默认值是
HashMap。由于
HashMap不保留元素的顺序,因此绝对不会为您服务。
myMap.entrySet().stream() .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) .collect(Collectors.toMap( Map.Entry::getKey, Map.Entry::getValue, (x,y)-> {throw new AssertionError();}, linkedHashMap::new ));使用静态导入,它将变得更加令人愉快:
myMap.entrySet().stream() .sorted(comparingByValue(reverseOrder())) .collect(toMap( Map.Entry::getKey, Map.Entry::getValue, (x,y)-> {throw new AssertionError();}, linkedHashMap::new ));


