去重

List<Annx> list1 = new ArrayList<>();
list1.add(new Annx("1","1"));
list1.add(new Annx("1","1"));
list1.add(new Annx("2","1"));
list1.add(new Annx("1","1"));
// 去重
list1 = list1.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Annx :: getUrl))), ArrayList::new));

System.out.println("---------去重"+list1);

过滤

List<Long> skuDetailIds = orderSkuDetailList.stream().filter(v -> OrderSkuTypeConstant.ORDER_PRO_TYPE_SERVICE.equals(v.getSkuType())).map(OrderSkuDetail::getId).collect(Collectors.toList());

分组

// 产品类型根据订单id分组
Map<Long, List<OrderSkuDetail>> orderSkuDetailMap = orderSkuDetailList.stream().collect(Collectors.groupingBy(OrderSkuDetail::getOrderId));

唯一字段

Map<Long, OrderPurchaseSku> purchaseSkuMap = orderPurchaseSkuList.stream().collect(Collectors.toMap(OrderPurchaseSku::getOrderSkuDetailId, Function.identity(), (key1, key2) -> key2));
JSON.toJSONStringWithDateFormat(insertTableDataBO, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteDateUseDateFormat)
orderDiscount.stream()
.mapToLong(a -> org.apache.commons.lang3.StringUtils.isBlank(a.getPrice()) ? 0L : Long.parseLong(a.getPrice())).sum();
QueryWrapper<SettlementOrderSkuDetail> query = new QueryWrapper<>();
query.lambda()
.eq(SettlementOrderSkuDetail::getOrderId,orderId)
.eq(SettlementOrderSkuDetail::getIsDelete,NumberConstant.ONE);

排序

dtoList.sort(Comparator.comparing(AdvertisingRelationDTO::getAdvertisingSort));
routine.sort(Comparator.comparing(QueueUpOrderDTO::getNormalStartTime).thenComparing(QueueUpOrderDTO::getNormalEndTime).thenComparing(QueueUpOrderDTO::getOrderTime,Comparator.reverseOrder()));
.sorted(Comparator.comparing(WorkbenchCarInfoVO::getStatus, (w1, w2) -> {
boolean b1 = DeviceInfoStatusEnum.TO_CHARGING_COMPLETED.getStatus().equals(w1) || DeviceInfoStatusEnum.CHARGING_COMPLETED.getStatus().equals(w1);
boolean b2 = DeviceInfoStatusEnum.CHARGING_COMPLETED.getStatus().equals(w2) || DeviceInfoStatusEnum.TO_CHARGING_COMPLETED.getStatus().equals(w2);
if (b1 && b2) {
return 0;
} else if ( (!b1) && b2) {
return 1;
} else if (b1) {
return -1;
} else {
return 0;
}
})).collect(Collectors.toList());

多字段分组

Map<String, List<AdvertisingSchedulingTime>> timeMap = schedulingTimes.stream().collect(Collectors.groupingBy(item -> item.getStartTime().toString() + "_" + item.getEndTime().toString()));
PushDTO<PushOrderDTO> pushDTO = JSONObject.parseObject(s, new TypeReference<PushDTO<PushOrderDTO>>() {});
Map<Long, String> maps = userList.stream().collect(Collectors.toMap(User::getId, User::getAge, (key1, key2) -> key2));
Map<Long, BigDecimal> activityInfoMap = activityInfoDtos.stream().filter(v -> v.getActivityDiscount() != null).collect(HashMap::new, (map, item) -> map.put(item.getId(), item.getActivityDiscount()), HashMap::putAll);