如何使用Java 8对地图列表进行排序?

BJ *_*ruz 5 java sorting java-8

我如何排序ListMap<String, String>使用Java 8?映射包含一个名为的键last_name,与之关联的值可能是null.我不知道该怎么做,因为以下会导致编译器错误:

List<Map<String, String>> peopleList = ...

peopleList.sort(Comparator.comparing(Map::get, Comparator.nullsLast(Comparator.naturalOrder())));
Run Code Online (Sandbox Code Playgroud)

使用匿名类是唯一的方法吗?

请注意,我不是要尝试对列表中的每个地图进行排序.我想根据每个地图中的一个键对列表本身进行排序.

Psh*_*emo 11

看起来你可以重写你的代码

peopleList.sort(Comparator.comparing(
                    m -> m.get("yourKey"), 
                    Comparator.nullsLast(Comparator.naturalOrder()))
               )
Run Code Online (Sandbox Code Playgroud)