#使用filter()过滤List
//添加测试数据
List<User> userList = new ArrayList<>();
studentList.add(new StudentInfo("张三",14)); studentList.add(new StudentInfo("李四",18)); studentList.add(new StudentInfo("王五",21)); studentList.add(new StudentInfo("赵六",17));
//查找年龄在18岁以上的 List<User> userFilterList = userList.stream().filter(s->s.getAge() >= 18).collect(Collectors.toList()); //输出查找结果 StudentInfo.printStudents(userFilterList);
#使用groupingBy()进行分组后 使用averagingInt()进行求平均值
//添加测试数据 List<ResultModel> selectResultList = new ArrayList<>(); selectResultList.add("传输网IP",12,10,22); selectResultList.add("传输网IP",14,10,30); selectResultList.add("传输网IP",12,10,33); selectResultList.add("传输网IP",17,11,41); selectResultList.add("传输网IP",12,10,15); //根据数据源id,策略id进行分组 Map<String, List<ResultModel>> countMap = sevenDaySqlList.stream().collect(Collectors.groupingBy(item -> item.getDatasourceId() + "_" + item.getPolicyId()));
for(String keys : countMap.keySet()){
String[] temp = keys.split("_");
Integer datasourceId = Integer.valueOf(temp[0]);
Integer policyId = Integer.valueOf(temp[1]);
List<ResultModel> list = countMap.get(keys);
//进行求平均值计算
Double resultAvg = list.stream().collect(Collectors.averagingInt(ResultModel::getResultNum));
}
//过滤 采集结果为0的数据 且不在范围内的数据后 并求平均值 Double resultAvg = list.stream().filter(s->s.getResultNum() > 0 && Math.max(reduc, s.getResultNum()) == Math.min(s.getResultNum(), plus) ).collect(Collectors.averagingInt(ResultModel::getResultNum)); //获取平均值,总数,最大数,最小数,求和 IntSummaryStatistics summaryStatistics = getNowList.stream().collect(Collectors.summarizingInt(ResultModel::getResultNum)); double avgResult = summaryStatistics.getAverage();int countResult = Math.toIntExact(summaryStatistics.getCount()); int maxResult = Math.toIntExact(summaryStatistics.getMax()); int minResult = Math.toIntExact(summaryStatistics.getMin()); int sumResult = Math.toIntExact(summaryStatistics.getSum());