使用 Vavr List.distinctBy
Using Vavr List.distinctBy
我想使用 List.distinctBy 来过滤由 (Javaslang) 提供的列表
我在 pom.xml
中添加了这个依赖项
<dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr-kotlin</artifactId>
<version>0.10.0</version>
但是当我在代码中使用它时
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream()
.distinctBy(MenuPriceByDay::getUpdateLocalDate)
.map(cp -> cp.getUpdateLocalDate())
.sorted()
.forEach(System.out::println);
我有一个编译错误:
The method distinctBy(MenuPriceByDay::getUpdateLocalDate) is undefined for the type
Stream<MenuPriceByDay>
嗯,List.distinctBy
是 io.vavr.collection.List
上的一个方法,而您正试图在 java.util.stream.Stream
上调用它。
您可以使用例如StreamEx
改为:
StreamEx.of(
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream())
.distinct(MenuPriceByDay::getUpdateLocalDate)
.map // etc
但是对于这种特定情况,您实际上并不需要它,因为之后您正在通过相同的函数 执行map
。所以它应该等同于
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream()
.map(cp -> cp.getUpdateLocalDate())
.distinct()
.sorted()
.forEach(System.out::println);
(假设getUpdateLocalDate
是一个纯函数)。
我想使用 List.distinctBy 来过滤由 (Javaslang) 提供的列表 我在 pom.xml
中添加了这个依赖项 <dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr-kotlin</artifactId>
<version>0.10.0</version>
但是当我在代码中使用它时
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream()
.distinctBy(MenuPriceByDay::getUpdateLocalDate)
.map(cp -> cp.getUpdateLocalDate())
.sorted()
.forEach(System.out::println);
我有一个编译错误:
The method distinctBy(MenuPriceByDay::getUpdateLocalDate) is undefined for the type
Stream<MenuPriceByDay>
嗯,List.distinctBy
是 io.vavr.collection.List
上的一个方法,而您正试图在 java.util.stream.Stream
上调用它。
您可以使用例如StreamEx
改为:
StreamEx.of(
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream())
.distinct(MenuPriceByDay::getUpdateLocalDate)
.map // etc
但是对于这种特定情况,您实际上并不需要它,因为之后您正在通过相同的函数 执行map
。所以它应该等同于
menuPriceByDayService
.findAllOrderByUpdateDate(menu, DateUtils.semestralDate(), 26)
.stream()
.map(cp -> cp.getUpdateLocalDate())
.distinct()
.sorted()
.forEach(System.out::println);
(假设getUpdateLocalDate
是一个纯函数)。