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.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
10:对集合中的两个对象进行排序
records.sort(Comparator.comparing(CapabilityAssessment::getUserName)
.thenComparing(CapabilityAssessment::getSort));
11:对集合中的两个对象进行排序,自定义规则排序
// 创建排序规则
Comparator<EquipmentFacilitiesVO> comparator = (vo1, vo2) -> {
int index1 = stringList.indexOf(vo1.getOrgName()); // 假设 getFacilityName() 是获取设施名称的方法
int index2 = stringList.indexOf(vo2.getOrgName());
return Integer.compare(index1, index2);
};
// 排序
voList.sort(comparator);
12. 根据时间和组织机构分组
// 昨日
Map<String, List<UnionStationRealTime>> lastMap = lastList.stream()
.filter(e -> e != null && e.getOrg() != null)
.collect(Collectors.groupingBy(
UnionStationRealTime::getOrg,
Collectors.collectingAndThen(
Collectors.toList(),
list -> list.stream()
.sorted(Comparator.comparing(UnionStationRealTime::getCreateTime)) // 升序
// .sorted(Comparator.comparing(UnionStationRealTime::getAlarmStartTime).reversed()) // 降序
.collect(Collectors.toList())
)
));