分批处理 Stream
2018-05-31 本文已影响0人
bigfish1129
-
Lists.partition(billDetailDOList, 500);
-
Stream to list
List<QueryDO> queries = PageResult
.getData()
.stream()
.map(s -> {
ueryDO query = new QueryDO();
query.setcode(s.getcode());
return query;
}).collect(Collectors.toList());
List<Long> IdList = PageResult.getData().stream()
.map(ds -> Long.parseLong(ds.getId())).collect(Collectors.toList());
- stream().forEach
Service.listByIds(queries).stream().forEach(element -> {
Map.put(element.getId() + ":" + element.getSId(), element);
});
- Stream to map
Map<String, DO> GroupById = Service.listByIds(itemQueryDOs)
.stream().collect(Collectors.toMap(g -> g.getId(), g -> g));
- 分组求和 summingInt
Map<String, Integer> Map = list
.stream()
.filter(t -> t.getNum() != null && t.getNum() > 0)
// 按ID分组求和
.collect(groupingBy(DO::getId,
summingInt(DO::getNum)));
- 合并所有的商品子List
List<DetailDO> newItems = OrdersDOList.stream()
.flatMap(a -> a.getDetailDOs().stream()).collect(Collectors.toList());
- //计算每种商品的数量和
Map<Long, Long> newItemsNumSum = new HashMap<>();
if (CollectionUtils.isNotEmpty(newItems)) {
newItemsNumSum = newItems
.stream()
.collect(
Collectors.groupingBy(DetailDO::getItemId,
Collectors.summarizingLong(DetailDO::getNum))).entrySet()
.stream().map(entry -> ImmutablePair.of(entry.getKey(), entry.getValue().getSum()))
.collect(Collectors.toMap(Pair::getLeft, Pair::getRight));
}