引言
实际开发中,我们常要对集合进行转换,一个forEach()让这个变得繁杂,用了Lambda,直接一切简单了
1. List转Map
直接上代码
List<RedRecordDto> records = redRecordService.getRecords();
//List<RedRecordDto>根据日期合成--------------->Map<属性,对象>
Map<Date, RedRecordDto> map = records.stream().collect(Collectors.toMap((RedRecordDto::getCreateTime), RedRecordDto -> RedRecordDto));
//自定义key的转为map--------------->Map<自定义key,对象>
Map<String, GrayWhiteDo> batchUpdateGrayWhiteVoMap = whiteInfoList.stream().collect(Collectors.toMap(k->grayConfig.getRedisGrayWhiteKeyPrefix()+k.getMsisdn(), grayWhiteDo->grayWhiteDo));
//List<RedRecordDto>根据日期分组--------------->Map<属性,List<对象>>
Map<String, List<RedRecordDto>> m = records.stream().collect(Collectors.groupingBy(r->(r.getCreateTime().toString())));