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

使用流API对Java列表排序

申屠秦斩
2023-03-14

我有以下课程

public class ResourceContributor {

    private Resource resource;

    private Contributor contributor;

    private ContributorRole role;

}

我正在尝试按贡献者名称和角色名称对ResourceContributor列表进行排序。到目前为止,我得到的是:

    List<ResourceContributor> resourceContributorsSorted = resourceContributors.stream()
            .sorted(Comparator.comparing(resourceContributor -> resourceContributor.getContributor().getName()))
            .collect(Collectors.toList());

我试过使用thenComparing,但还不知道如何使用它。

共有1个答案

顾曾笑
2023-03-14

只需将调用链接到thenComparing,您将需要进行类型转换,以避免出现编译错误:

resourceContributors.stream()
        .sorted(Comparator.comparing((ResourceContributor resourceContributor) -> resourceContributor.getContributor().getName())
                .thenComparing(resourceContributor -> resourceContributor.getRole().getName()))
        .collect(Collectors.toList());
 类似资料:
  • 我有一个这样的方法: 此方法需要以如下字符串形式返回3个最昂贵项目的产品ID:“item1,item2,item3”。我应该只能使用溪流,我被困在这里了。我应该能够按值对项目进行排序,然后获得产品ID,但我似乎无法使其正常工作。 编辑: 产品ID位于入口类中

  • 我有以下课程 我正在尝试按贡献者名称和角色名称对ResourceContributor列表进行排序。到目前为止,我得到的是: 我已经尝试使用then比较,但还不知道如何使用它。

  • 我对从流中排序列表感兴趣。这是我正在使用的代码: 我是不是漏了什么?之后不会对列表进行排序。 它应该根据最低值的项目对列表进行排序。 以及打印方法:

  • 问题内容: 我有以下情况 我已经合并所有列表从从对象地图。 知道如何使用Java 8流API吗? 问题答案: 我想这就是您要寻找的。 例如:

  • 问题内容: 我的清单包含大小等的集合。我尝试这样做,但似乎不起作用。 我想要的最终结果是。 我可以尝试添加在所有的元素和那种出来再做出新的的。但是,有某种班轮吗? 更新: 这可行,但是可以简化吗? 问题答案: @Eugene的回答很甜蜜,因为番石榴很甜。但是,如果您碰巧在类路径中没有番石榴,这是另一种方式: 首先,我将所有集合映射到一个流中,然后对所有元素进行排序,最后,将整个排序后的流收集到集合

  • 我有以下情况 我必须合并所有列表从映射的对象。 知道如何使用Java8流API吗?