public static <T> Collector<T,?,Integer> summingInt(ToIntFunction<? super T> mapper)
public static <T> Collector<T,?,Long> summingLong(ToLongFunction<? super T> mapper)
public static <T> Collector<T,?,Double> summingDouble(ToDoubleFunction<? super T> mapper)
这三个方法的功能类似,唯一区别就是针对的数据类型不一样。因此这里只拿summingInt来说明。
还是先看一个例子:
void test41() {
List<User> userList = List.of((new User("mail1","adr1",3)),(new User("mail2","a2",5)),(new User("mail2","adr3",9)),(new User("mail1","adrr4",13)));
Integer iss = userList.stream().collect(Collectors.summingInt(a -> a.getAge()));
System.out.println(iss.toString());
}
执行结果:30
看看这个例子是不是和summarizingInt那个例子非常相似,其实summingInt只是一个求和的功能只相当于把summarizingInt求和这部分功能独立出来。Collectors中有很多方法可以达到求和的目的,因此这个方法也就不多说了。