Java8实现对List<Integer>的求和
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
- int是java提供的8种原始数据类型之一。
- Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null
- Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。
关于ArrayList
ArrayList类是一个特殊的数组–动态数组。通过添加和删除元素,就可以动态改变数组的长度。
优点:
- 1、支持自动改变大小
- 2、可以灵活的插入元素
- 3、可以灵活的删除元素
局限:
比一般的数组的速度慢一些;
ArrayList是List接口的一个实现类。
ArrayList类是继承AbstractList抽象类和实现List接口的一个实现类。
因此,List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以像下面那样为List接口创建一个指向自己的对象引用,而ArrayList实现类的实例对象就在这充当了 这个指向List接口的对象引用。
这句代码的目的是可以调用
List接口里面的内置函数,add,get等方法;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
相关文章