java8中的stream的用法实践
1、将list转成map
在查找list中某个key有没有的时候,需要转成map,经常用到
Map<Long, ProductBatchStockDto> manualFinallyItemNbrsMap = manualFinallyList.stream() .collect(Collectors.toMap(ProductBatchStockDto :: getItemNbr, p -> p));
key:ProductBatchStockDto实体类的itemNbr属性 value:ProductBatchStockDto实体类对象 注意:当key值由相同的时候,会报异常:java.lang.IllegalStateException: Duplicate key
2、将map转成list
private List<UserGroupDTO> groupAreaFunctionDetailAreaType(List<UserDTO> userDTOList) {
// 创建list
List<UserGroupDTO> userGroupDTOList = new ArrayList<>();
// 按照age分组,封装成map,key:age, value:该age对应的list
Map<Integer, List<UserGroupDTO>> userGroupDTOGroupMap = areaFunctionDetailDTOList.stream()
.collect(Collectors.groupingBy(UserDTO::getAge));
// 将map转成list
for (Map.Entry<Integer, List<UserGroupDTO>> userGroupEntry : userGroupDTOGroupMap.entrySet()) {
UserGroupDTO userGroupDTO = new UserGroupDTO();
userGroupDTO.setAreaType(userGroupEntry.getKey());
userGroupDTO.setAreaTypeName(AreaTypeEnum.getNameByCode(userGroupEntry.getKey()));
userGroupDTO.setHobbyList(userGroupEntry.getValue());
userGroupDTOList.add(userGroupDTO);
}
return userGroupDTOList;
}
上一篇:
Python 安装包管理工具 pip
