【发布时间】:2020-02-06 21:27:37
【问题描述】:
我有一个地图,其中键为字符串,值为字符串列表
我想根据字符串列表(按字典顺序)对地图进行排序。
如果我有List<List<String>>,那么我可以排序
List<List<String>> sortedlist = new LinkedList<>();
sortedlist.sort((l1, l2) -> l1.get(0).compareTo(l2.get(0)));
但我有一个Map<String, List<String>> sortedMap,我想根据值对其进行排序,即地图值集中每个列表的第一个元素。
我正在尝试形成一个类似这样的流 lambda 表达式。
HashMap<String, List<String> > sortedmap = new HashMap<>();
sortedmap = map.values().stream().sorted(Map.Entry.comparingByValue((l1, l2) -> l1.get(0).compareTo(l2.get(0))) )
但它不是有效的 lambda 表达式。
如何使用 Java 8 流来做到这一点?
【问题讨论】:
-
HashMap
>
标签: java sorting java-8 hashmap java-stream