对一个list列表,按照一个字段进行分组,jdk8方式很方便实现:
List<BillFeeVO> feeVOList = billFeeDao.listTotalFee(dto);
Map<Object, List<BillFeeVO>> feeGroup = feeVOList.stream().filter(item->StringUtil.isNotBlank(item.getBizOperator()))
.collect(Collectors.groupingBy(BillFeeVO::getBizOperator));
如果是按照多个字段进行分组,jdk8应该怎么实现呢?
首先生成一个Bean,重写equals和hashcode方法,把该Bean作为key即可。
@Data
@Builder
private static class PickingGroupBean implements Comparable<PickingGroupBean> {
// 库存占用明细 相关信息 -----
// 库位id
private Long storeLocationId;
// 库位编码
private String shelfOrder;
// skuId
private Long skuId;
// 批次号
private String batchNo;
// 订单id
private Long sendOrderMainId;
// 单位id
private Long unitId;
// 库存占用明细 相关信息 -----