Java8对List<Integer>的求和

想要用流对List<Integer>进行求和,但查找完资料都是对List<Object>中Object中的某个字段进行求和,就像这样:

long sum = list.stream().mapToLong(User::getAge).sum();
登录后复制

而我list中本身存的就是基本类型的数字,并不适用。后来在IBM开发者社区中找答案:

long sum = list.stream().reduce(Integer::sum).orElse(0);
登录后复制

看来对流操作还是不太熟。

解释List<Integer> list = new ArrayList<Integer>()

List<Integer> list = new ArrayList<Integer>()
登录后复制

List< Integer>

List是一个接口

<>表示了List里面放的对象是什么类型的,这样写就表示了,你List里面放的必须是Integer类型的

关于 integer

Java8怎么实现对List&amp;lt;Integer&amp;gt;的求和-LMLPHP

  • int是java提供的8种原始数据类型之一。

  • Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null

  • Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。

关于ArrayList

ArrayList类是一个特殊的数组&ndash;动态数组。通过添加和删除元素,就可以动态改变数组的长度。

优点:

  • 1、支持自动改变大小

  • 2、可以灵活的插入元素

  • 3、可以灵活的删除元素

局限:

比一般的数组的速度慢一些;

ArrayList是List接口的一个实现类。

ArrayList类是继承AbstractList抽象类和实现List接口的一个实现类。

因此,List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以像下面那样为List接口创建一个指向自己的对象引用,而ArrayList实现类的实例对象就在这充当了 这个指向List接口的对象引用。

这句代码的目的是可以调用

List接口里面的内置函数,add,get等方法;

Java8怎么实现对List&amp;lt;Integer&amp;gt;的求和-LMLPHP

以上就是Java8怎么实现对List&lt;Integer&gt;的求和的详细内容,更多请关注Work网其它相关文章!

09-19 10:13