对象转Map
Map<Long, OrderItem> orderItemMap = list.stream().collect(Collectors.toMap(OrderItem::getId, i -> i));
对象属性值统计
list.stream().map(OrderItemResponse::getGoodsId).distinct().count();
//过滤-匹配第一个
OrderPayment dbPayment = list.stream().filter(p -> "已支付".equals(p.getStatus()))
.findFirst().get();
//集合
List<Long> orderItemIds = list.stream().map(OrderItemResponse::getOrderItemId).distinct().collect(Collectors.toList());
//指定分组-value为对象集合
list.stream().collect(Collectors.groupingBy(OrderItem::getOrderId));
//指定分组-value为对象集合
private Map<Long, List<OrderItemResponse>> getPurchaseOrderItemByGoodsIdMap(List<OrderItemResponse> list) {
return list.stream()
.collect(Collectors.toMap(OrderItemResponse::getGoodsId, Lists::newArrayList,
(List<OrderItemResponse> oldList, List<OrderItemResponse> newList) -> {
oldList.addAll(newList);
return oldList;
}));
}
//指定分组-value为某个字段的集合
第一种: items.stream().collect(Collectors.groupingBy(OrderItem::getOrderId));
第二种:
private Map<Long, List<Long>> getMap(List<OrderItemResponse> list) {
return list.stream()
.collect(Collectors.toMap(OrderItemResponse::getOrderItemId, i -> Lists.newArrayList(i.getStockDcId()),
(List<Long> oldList, List<Long> newList) -> {
oldList.addAll(newList);
return oldList;
}));
}
//排序
list.stream().sorted(Comparator.comparing(LotteryItemResponse::getQuantity).reversed()).findFirst()
//指定排序
List<Integer> regulationOrder = Lists.newArrayList(1, 2, 4, 3);
list.sort((o1, o2) -> {
int io1 = regulationOrder.indexOf(o1.getType());
int io2 = regulationOrder.indexOf(o2.getType());
return io1 - io2;
});