Java stream().reduce实现数组合并操作(数值累加、数值累减、数值求最大最小值、字符串连接)

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

注:更多类型的数值累加请参考以下博客。

Java BigDecimal、Integer类型数值累加 

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;
    }
});

猜你喜欢

转载自blog.csdn.net/qq_38974638/article/details/113913647