小编给大家分享一下java8实现list集合中按照某一个值相加求和,平均值的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
集合:
List
user = new User(); user .stream().collect(Collectors.summingInt(User::getAge))
参数类型:
summarizingDouble 统计数据(double)状态, 其中包括count min max sum和平均值
summarizingInt 统计数据(int)状态, 其中包括count min max sum和平均值
summarizingLong 统计数据(long)状态, 其中包括count min max sum和平均值.
summingInt 求和 返回int类型
summingDouble 求和 返回double类型
summingLong 求和 返回long类型
counting 返回Stream的元素个数
averagingDouble 求平均值 返回double类型
averagingInt 求平均值 返回int类型
averagingLong 求平均值 返回long类型
maxBy 在指定条件下,返回大值
minBy 在指定条件下,返回最小值
补充知识:Java8集合List排序、筛选、求和、求大值、平均值、List转Map
Java8集合List排序、筛选
1. List
元素有序
元素可重复
1.1 ArrayList
动态数组实现
查询快
增删慢(末尾处也快)
1.2 LinkedList
链表实现
查询慢
增删快
1.3 ArrayList和LinkedList比较
实现 | 查询 | 增删 | 线程安全? | |
---|---|---|---|---|
ArrayList | 动态数组 | 快 | 慢(末尾处也快) | 不安全 |
LinkedList | 链表 | 慢 | 快 | 不安全 |
ArrayList:
它的默认初始化容量是10,每次扩容时候增加原先容量的一半,也就是变为原来的1.5倍。
LinkedList:
底层实现是双向链表。
在增加和删除元素时效率较高。
1.4 List过滤指定元素
1.4.1 准备待测试的List
public class Message { private Long id; //id private String msg; //消息 private Date sendTime; //时间戳 //省略get set }