1 数值累加
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//lambda表达式实现
int sum = Arrays.stream(numbers).reduce(0, (current, number) -> current + number); // 55
//方法引用实现
int sum2 = Arrays.stream(numbers).reduce(0, Integer::sum); // 55
注:更多类型的数值累加请参考以下博客。
2 数值累减
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//lambda表达式实现
int sum = Arrays.stream(numbers).reduce(0, (current, number) -> current - number); // -55
3 数值求最大最小值
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
//最大值
int max = Arrays.stream(numbers).reduce(0, (current, number) -> current > number ? current : number); // 10
int max1 = Arrays.stream(numbers).reduce(0, Integer::max); // 10
//最小值
int min = Arrays.stream(numbers).reduce(0, (current, number) -> current < number ? current : number); // 0
int min1 = Arrays.stream(numbers).reduce(0, Integer::min); // 0
4 字符串连接
String[] strings = {"a", "b", "c", "d", "e"};
// |a|b|c|d|e
String reduce = Arrays.stream(strings).reduce("", (current, number) -> current + "|" + number);
// a|b|c|d|e
String reduce2 = Arrays.stream(strings).reduce("", (current, number) -> {
if (!"".equals(current)) {
return current + "|" + number;
} else {
return number;
}
});