小编kac*_*230的帖子

Java Streams在reduce之后对值进行排序

我只是试着理解Java中的流,并且我坚持排序阶段.我的目的是用一条流来获得最昂贵的蔬菜披萨.在这一点上,我得到披萨价格,但我无法对它进行排序.谁能告诉我应该怎么做呢?

我尝试这个:

pizzas.stream()
    .flatMap(pizza -> Stream.of(pizza.getIngredients())
        .filter(list -> list.stream().noneMatch(Ingredient::isMeat))
            .map(list -> list.stream().map(Ingredient::getPrice).reduce(0,(a, b) -> a + b))
            .sorted((o1, o2) -> o1.intValue() - o2.intValue())
            )
    .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

此代码返回未分类的比萨饼值.

java java-8 java-stream

3
推荐指数
1
解决办法
240
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1