gpt4 book ai didi

java - Collectors.groupingBy() 返回按升序排序的结果 java

转载 作者:行者123 更新时间:2023-12-02 08:24:21 26 4
gpt4 key购买 nike

我按降序发送结果,但得到的输出按升序排列

List<myEntity> myData = new ArrayList<>();
Map<Integer,List<myEntity>> myid = new LinkedHashMap<>();

try {
myData = myService.getData(id);
myid = myData.stream().collect(Collectors.groupingBy(myEntity::getDataId));

这里 mydata 按降序排序,但在按组数据 id 创建集合后,我的列表按升序排序。我希望我的 Collection 列表按降序排列而不是升序排列。

最佳答案

正如 @Holger 在 Java 8 is not maintaining the order while grouping 中所述,Collectors.groupingBy()返回一个HashMap,不保证顺序。

您可以执行以下操作:

myid = myData.stream()
.collect(Collectors.groupingBy(MyEntity::getDataId,LinkedHashMap::new, toList()));

将返回 LinkedHashMap<Integer, List<MyEntity>> 。由于收集器使用的列表是 ArrayList,因此顺序也会保持不变。

关于java - Collectors.groupingBy() 返回按升序排序的结果 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192078/

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