小编Wal*_*all的帖子

BiFunction-apply方法应始终返回第二个参数。为什么?

我试图从列表中识别其前任大于其值的数字。

在lambda表达式中,如果我返回b,则其行为符合预期,但如果我返回a,则给出错误的输出。

这两个return语句有什么区别?

    List<Integer> list = Arrays.asList(1,2,3,4,5,8,7);
    List<Integer> result = new ArrayList<>();
    list.stream().reduce((a,b) -> {if (a < b) result.add(a);return b;});
    System.out.println(result);

    result.clear();
    list.stream().reduce((a,b) -> {if (a < b) result.add(a);return a;});
    System.out.println(result);
Run Code Online (Sandbox Code Playgroud)

输出:

[1、2、3、4、5]

[1,1,1,1,1,1]

java lambda java-stream

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

标签 统计

java ×1

java-stream ×1

lambda ×1