当前位置: 首页 > 知识库问答 >
问题:

如何收集到Map以实现List排序?[重复]

封锐藻
2023-03-14

我有这样的代码:

final TreeMap<String, List<MyBean>> map= elements.stream()
                .filter(....)
                .collect(Collectors.groupingBy(MyBean::getName,
                        TreeMap::new,
                        Collectors.toList()
                ));

如何实现该列表是按someStringField排序的?

共有2个答案

岳嘉石
2023-03-14

我建议您检查另一个线程中提出的解决方案:TreeMap sort by value

你必须经过分拣机。树映射本身是不可排序的。

司空俊雄
2023-03-14

您可以添加一个收集器#collecting,然后到您的收集器#列表下游:

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;
                      })
      ));
 类似资料:
  • 问题内容: 我找不到使用此方法的任何示例,所有示例都给出了第二个参数“ null”。我听说此方法用于根据多个标准对类进行排序,但找不到示例。 对于本课程,如果我想根据学生的姓名和年龄对学生列表进行排序,如何使用方法Collections sort(List,Comparator) 问题答案: 在你现有的学生班级的基础上,这通常是我的工作方式,尤其是当我需要多个比较器时。 用法: 编辑 自Java

  • 我使用的是java 11,我有一个名为MyObject的对象列表,看起来像这样 我想使用流将这些对象收集到地图中 我试着用收集器来做。toMap(),但似乎不可能做到这一点 我的问题是可以制作一张地图吗

  • 本文向大家介绍List集合中对数据实现多重规则进行排序的案例,包括了List集合中对数据实现多重规则进行排序的案例的使用技巧和注意事项,需要的朋友参考一下 List集合进行排序时,很多人会考虑冒泡、快速等排序算法,但是对于多重排序规则的话,算法就不太适用了。其实java.util.Collections已经提供了sort的排序方法,并且能自己实现其排序规则。 现在有个场景:我需要对一批优惠券进行排

  • 我有一个嵌套的映射,其中key是员工名称,values是另一个映射,其中key是公司名称,value是经验年数,如下所示 现在我的函数应该返回一个映射,以员工姓名为键,以总经验为值。我如何使用java流(在单个流中)做到这一点

  • 本文向大家介绍javascript 实现map集合,包括了javascript 实现map集合的使用技巧和注意事项,需要的朋友参考一下 前几天项目上想用map集合一样的东西,简单拿对象拼了一下子,今天闲的慌实现一下 大家不要见笑 代码 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 本文向大家介绍Java Map 按key排序和按Value排序的实现方法,包括了Java Map 按key排序和按Value排序的实现方法的使用技巧和注意事项,需要的朋友参考一下 一、理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black tree)的 Naviga