1:stream流所有数据添加
list.stream().filter(l->l != null && l.getOrg() != null).map(EnergyDetection::getOrg).reduce(BigDecimal.ZERO, BigDecimal::add));
2:stream中数据分组
list.stream().filter(e -> e != null && e.getOrg() != null).collect(Collectors.groupingBy(EnergyDiscardGas::getOrg));
3:stream中数据排序
list = list.stream().sorted(Comparator.comparing(EnergyDiscardGas::getTime).reversed()) .collect(Collectors.toList());
4:stream中对数据等于0判断
productionTime.compareTo(BigDecimal.ZERO) != 0
5:对集合对象中的某个”String“类型的字段进项排序
voList.stream().sorted(Comparator.comparing(v -> v.getThreeOrgName())) .collect(Collectors.toList());
6:对集合对象中的某个”String“类型的字段转为Double进行运算累和
double sum = planList.stream().mapToDouble(person -> Double.parseDouble(person.getGas())) .sum();
7:对集合对象中的某个”String“类型的字段转为BigDecimal进行运算累和
BigDecimal sumGasMonth = shaleGasDailies.stream() .map(f -> new BigDecimal(f.getGasProductionDay())) .reduce(BigDecimal.ZERO, BigDecimal::add);
8:把集合中的一个字段转换为集合,并对这个字段去重
List<String> distinctNames = originalList.stream()
.map(Person::getName)
.distinct()
.collect(Collectors.toList());
9:把对象集合中的String类型的截取并分组
Map<Integer, List<MyObject>> groupedByYear = objects.stream() .collect(Collectors.groupingBy( // 截取字符串的前四个字符并转换为整数 obj -> Integer.parseInt(obj.getTime().substring(0, 4)), Collectors.toList() // 收集到列表中 ));
10:提取用户id字段并创建一个新的List
// 使用Stream API提取用户id字段并创建一个新的List List<String> ids = userList.stream() .map(User::getId) .collect(Collectors.toList()); // 收集结果到新的List
records.sort(Comparator.comparing(CapabilityAssessment::getUserName) .thenComparing(CapabilityAssessment::getSort));