方式一,使用原生的Map操作:
List<KeOrderRefund> refundList ;
//赋值到map, 原生
Map<String,List<KeOrderRefund>> map = new HashMap<>();
for (KeOrderRefund keOrderRefund : refundList) {
List<KeOrderRefund> keOrderRefunds = addTo(map,keOrderRefund.getOrderNo());
keOrderRefunds.add(keOrderRefund);
map.put(keOrderRefund.getOrderNo(),keOrderRefunds);
}
/**
* 如果存在,则返回list, 如果不存在,则创建list
* @param map
* @param orderNo
* @return
*/
private List<KeOrderRefund> addTo(Map<String,List<KeOrderRefund>> map, String orderNo){
boolean b = map.containsKey(orderNo);
if(b){
return map.get(orderNo);
}else{
return new ArrayList<>();
}
}
方式二,使用Stream的方式操作:
List<KeOrderRefund> refundList;
//使用stream
Map<String ,List<KeOrderRefund>> map = refundList.stream().collect(Collectors.groupingBy(KeOrderRefund::getOrderNo));
说明:根据订单号分组,将List转换为Map<String ,List>