gpt4 book ai didi

java - 使用 Stream API 创建 Map> ,其中对列表的元素进行排序

转载 作者:行者123 更新时间:2023-12-01 12:38:50 27 4
gpt4 key购买 nike

我有任何ArrayList “监控”对象。每个对象都有两个字段,“brand::String”和“price::BigDecimal”。我正在使用以下 Stream,将 Monitor 对象分类为 HashMap<String, List<Monitor>> , 其中key是名称(因此具有相同名称的监视器最终出现在相同的列表中:

Map<String, List<Monitor>> monitorsByNameMap =
monitors.stream()
.collect(Collectors.groupingBy(Monitor::getName));

我想要每一个 List<Monitor>HashMap根据 price 排序每个 Monitor object - 最好按升序排列。我想知道是否可以通过添加到上面的表达式来实现。

最佳答案

name分组后可以使用collectingAndThen

Map<String, List<Monitor>> monitorsByNameMap = monitors.stream()
.collect(Collectors.groupingBy(Monitor::getName,
Collectors.collectingAndThen(Collectors.toList(),
l -> l.stream()
.sorted(Comparator.comparing(Monitor::getPrice))
.collect(Collectors.toList())
))
);

关于java - 使用 Stream API 创建 Map<String, List<Object>> ,其中对列表的元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61806918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com