我正在尝试从其前身大于其价值的列表中识别数字。
在 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);
输出:
[1, 2, 3, 4, 5]
[1, 1, 1, 1, 1, 1]
白衣非少年
动漫人物
相关分类