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         );
posted @ 2020-09-26 16:05  不方亦不凡  阅读(564)  评论(0编辑  收藏  举报