List<StockDetails> stockDetailsList = this.list(new LambdaQueryWrapper<StockDetails>().eq(StockDetails::getItemName, itemName).eq(StockDetails::getDelFlag, 0));
List<StockDetails> stockDetails = stockDetailsList.stream()
.filter(x -> x.getBatchNo() != null && "1".equals(x.getType()))
.collect(Collectors.groupingBy(StockDetails::getBatchNo))
.entrySet()
.stream()
.map(entry -> {
List<StockDetails> value = entry.getValue();
List<StockDetails> newList = value.stream().sorted((c1, c2) -> c2.getCreateTime().compareTo(c1.getCreateTime()))
.collect(Collectors.toList());
return newList.get(0);
}).collect(Collectors.toList());
java将一个list分组后,再将每个分组根据某个字段排序后取第一条
于 2023-03-09 15:36:39 首次发布