首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java8 lambda:对流进行反向排序?

Java8 lambda:对流进行反向排序?
EN

Stack Overflow用户
提问于 2018-06-01 14:40:17
回答 2查看 9.4K关注 0票数 6

我有这个列表,我想按预定顺序订购,但我在自动完成协助中没有找到任何.reversed()函数

代码语言:javascript
复制
 myMenus(user)
                .stream()
                .filter(mps ->  mps.get1PercentageChange() > 0 &&
                                mps.get2PercentageChange() > 0 &&
                                mps.get3PercentageChange() > 0 &
                                mps.get4PercentageChange() > 0)
                .sorted(comparing(mps -> mps.getDailyPercentageChange()))
                .collect(toList());

我也尝试过:

代码语言:javascript
复制
myMenus(user)
        .stream()
        .filter(mps ->  mps.get1PercentageChange() > 0 &&
                        mps.get2PercentageChange() > 0 &&
                        mps.get3PercentageChange() > 0 &
                        mps.get4PercentageChange() > 0)
        .sorted(comparing(mps -> mps.getDailyPercentageChange()).reversed())
        .collect(toList());

但是,我有一个编译错误:

代码语言:javascript
复制
Cannot infer type argument(s) for <T, U> comparing(Function<? super T,? 
     extends U>)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 15:21:15

这是一个类型推断问题。你需要帮助编译器。

有几件事你可以尝试:

代码语言:javascript
复制
.sorted(comparing(T::getDailyPercentageChange).reversed())

代码语言:javascript
复制
.sorted(comparing((T mps) -> mps.getDailyPercentageChange()).reversed())

其中T是要比较的元素的类型。

票数 8
EN

Stack Overflow用户

发布于 2018-06-01 14:45:27

Comparators有一个reversed方法来获得反向排序,因此:

代码语言:javascript
复制
.sorted(comparing(mps -> mps.getDailyPercentageChange()).reversed())

应该行得通。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50645906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档