首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Vavr List.distinctBy

使用Vavr List.distinctBy
EN

Stack Overflow用户
提问于 2019-03-17 08:29:47
回答 1查看 529关注 0票数 0

我想使用List.distinctBy过滤(Javaslang)提供的列表,我在pom.xml中添加了这个依赖项

代码语言:javascript
复制
   <dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr-kotlin</artifactId>
<version>0.10.0</version>

但是当我在代码中使用它时

代码语言:javascript
复制
menuPriceByDayService
                .findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
                .stream()
                .distinctBy(MenuPriceByDay::getUpdateLocalDate)
                .map(cp -> cp.getUpdateLocalDate())
                .sorted()
                .forEach(System.out::println);

我有一个编译错误:

代码语言:javascript
复制
The method distinctBy(MenuPriceByDay::getUpdateLocalDate) is undefined for the type 
 Stream<MenuPriceByDay>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-17 08:53:44

List.distinctByio.vavr.collection.List上的一个方法,您试图在java.util.stream.Stream上调用它。

您可以使用例如StreamEx

代码语言:javascript
复制
StreamEx.of(
    menuPriceByDayService
        .findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
        .stream())
    .distinct(MenuPriceByDay::getUpdateLocalDate)
    .map // etc

但是对于这种特殊情况,您确实不需要它,因为之后您使用相同的函数map 执行。所以它应该相当于

代码语言:javascript
复制
menuPriceByDayService
    .findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
    .stream()
    .map(cp -> cp.getUpdateLocalDate())
    .distinct()
    .sorted()
    .forEach(System.out::println);

(假设getUpdateLocalDate是纯函数)。

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

https://stackoverflow.com/questions/55205202

复制
相关文章

相似问题

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