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