Java 如何收集地图<;字符串,列表<;字符串>&燃气轮机;要实现该列表已排序?
我有这样的代码:Java 如何收集地图<;字符串,列表<;字符串>&燃气轮机;要实现该列表已排序?,java,sorting,collections,java-8,java-stream,Java,Sorting,Collections,Java 8,Java Stream,我有这样的代码: final TreeMap<String, List<MyBean>> map= elements.stream() .filter(....) .collect(Collectors.groupingBy(MyBean::getName, TreeMap::new, Collectors.toL
final TreeMap<String, List<MyBean>> map= elements.stream()
.filter(....)
.collect(Collectors.groupingBy(MyBean::getName,
TreeMap::new,
Collectors.toList()
));
final TreeMap map=elements.stream()
.过滤器(…)
.collect(收集器.groupingBy(MyBean::getName、,
树映射::新的,
收集者
));
如何实现该列表是按
someStringField
排序的?您可以添加一个收集器#collecting,然后
到您的收集器#toList
下游:
final TreeMap<String, List<MyBean>> map = elements.stream()
.collect(Collectors.groupingBy(MyBean::getName,
TreeMap::new,
Collectors.collectingAndThen(
Collectors.toList(),
l -> {
l.sort(Comparator.comparing(MyBean::getSomeStringField));
return l;
})
));
final TreeMap map=elements.stream()
.collect(收集器.groupingBy(MyBean::getName、,
树映射::新的,
收藏,收藏,然后(
Collectors.toList(),
l->{
l、 排序(Comparator.comparing(MyBean::getSomeStringField));
返回l;
})
));
我建议您检查另一个线程中提出的解决方案:
你必须经过分拣机。树映射本身不可排序。hmmm。。。这会导致编译错误。您能检查一下吗?错误:(50,21)java:不兼容类型:推理变量RR具有不兼容的边界相等约束:java.util.List,D,V下限:void看起来您没有返回l;语句。@谢谢您的编辑。我以前没有试过,它只是临时写的。