// 保留第一个出现的值(忽略后续重复值)
Map<String, MAssessmentMethodBaseEntity> collect = mAssessmentMethodBaseEntities.stream()
.collect(Collectors.toMap(
MAssessmentMethodBaseEntity::getAssessmentMethodCode, // key提取函数
Function.identity(), // value提取函数
(existing, replacement) -> existing // 重复key时,保留existing(第一个)
));
// 或者保留最后一个出现的值(覆盖前面的值)
Map<String, MAssessmentMethodBaseEntity> collect = mAssessmentMethodBaseEntities.stream()
.collect(Collectors.toMap(
MAssessmentMethodBaseEntity::getAssessmentMethodCode,
Function.identity(),
(existing, replacement) -> replacement // 重复key时,用新值replacement覆盖
));
Map<String, List<MAssessmentMethodBaseEntity>> collect = mAssessmentMethodBaseEntities.stream()
.collect(Collectors.groupingBy(MAssessmentMethodBaseEntity::getAssessmentMethodCode));
- 分组后赋值,赋值之后将每个分组中的value中取第一个并返回一个新数组
List<MAssessmentResultVo> distinctResults = assessmentResults.stream()
.collect(Collectors.groupingBy(
entity -> entity.getTypeName()
))
.values().stream()
.map(group -> group.get(0))
.collect(Collectors.toList());