用stream流將list轉為map
1、將list轉為Map<Long, List>
按照spaceId分組,spaceId相同的為一組數據:
List<BasEvaluationPriceResultDto> list = new ArrayList();
Map<Long, List<BasEvaluationPriceResultDto>> priceResultDtoMap = list.stream().collect(Collectors.groupingBy(BasEvaluationPriceResultDto::getSpaceId));
2、將list轉為Map<Long, E>
以id為key,數據為value
List<BasProject> list = new ArrayList();
Map<Long, BasProject> mapBasProject = list.stream().collect(Collectors.toMap(BasProject::getId, Function.identity()));
補充:
Function.identity() 源碼:
static <T> Function<T, T> identity() {return t -> t;}
Function.identity()的實現其實就是等價于形如 t->t 形式的Lambda表達式。可以讓代碼更加優雅化。
3、將list轉為List
將id收集為一個list
List<BasSpacePackage> list = new ArrayList();
List<Long> idList = list.stream().map(BasSpacePackage::getId).collect(Collectors.toList());