java1.8新特性的Stream的Reduce
java1.8新特性的Stream的Reduce 累加,依次增加
该方法中有一个重载的方法
Optional<T> reduce(BinaryOperator<T> accumulator);
BinaryOperator:意思是说的是二进制的输入参数
T reduce(T identity, BinaryOperator<T> accumulator);
identity:意思说的是在执行累加的过程之后的结束的时候会进行一次增加的操作
java中的这个方法只可以是进行操作数组或者是集合的流对象
案例:
数组的演示:
1 Integer [] ints=new Integer []{1,2,3,4,5}; 2 3 4 System.out.println( Stream.of(ints).reduce(Integer::sum).map(new Function<Integer, Integer>() { 5 @Override 6 public Integer apply(Integer integer) { 7 return integer; 8 } 9 })); 10 Optional[15]1 集合的演示: 2 演示的是部门中的员工人员的名单集合的年龄的累加之后再+10 3 System.out.println(PersonList.getPeoples().stream().map(new Function<Person, Integer>() { 4 /** 5 * Applies this function to the given argument. 6 * 7 * @param person the function argument 8 * @return the function result 9 */ 10 @Override 11 public Integer apply(Person person) { 12 return person.getId(); 13 } 14 }).reduce(10, new BinaryOperator<Integer>() { 15 @Override 16 public Integer apply(Integer integer, Integer integer2) { 17 return integer + integer2; 18 } 19 }) 20 );