/**
* @author dongm
* @Description: 将List中的实体类按照某个字段进行分组并存放至Map中
* @date:2019/12/24
* @param: [goodsTransitList]
*/
public Map<String, List<BackGoodsTransitDto>> getCatagory(List<BackGoodsTransitDto> goodsTransitList) {
/************* jdk1.8 新特性 start ***************/
Map<Long, List<BackGoodsTransitDto>> map = goodsTransitList.stream().collect(Collectors.groupingBy(BackGoodsTransitDto::getCatagoryId));
System.out.println("map ======= " + map);
/************* jdk1.8 新特性 end ***************/
/************** 传统方法start ****************/
// 初始化map
Map<String , List<BackGoodsTransitDto>> map = new HashMap<>();
// 遍历list
for(BackGoodsTransitDto goodsTransitDto : goodsTransitList) {
String key = "";
// 遍历map获取key值
for (Map.Entry<String, List<BackGoodsTransitDto>> entry : map.entrySet()) {
key = entry.getKey();
}
// 判断key是否相同
if (map.containsKey(key)) {
//map中存在此id,将数据存放当前key的map中
map.get("catagoryList").add(goodsTransitDto);
} else {//map中不存在,新建key,用来存放数据
List<BackGoodsTransitDto> tmpList = new ArrayList<>();
tmpList.add(goodsTransitDto);
List<BackGoodsTransitDto> name = map.get("catagoryName");
map.put("catagoryList", tmpList);
}
}
return map;
/************** 传统方法end ****************/
}