1.List转Map
在 Java 8 中,使用 Stream API 来处理 List<实体类>,并将实体类中的 rawItemNumber 参数作为键, process 参数作为值。对于相同的 rawItemNumber ,所对应的 process 值通过 “-” 进行拼接。实例如下:
// 使用 Stream API 进行处理
Map<String, String> rawItemMap = mesBaseDataList.stream()
.collect(Collectors.groupingBy(
UBoardKittingData::getRawItemNumber, // 以 rawItemNumber 作为键
Collectors.mapping(
UBoardKittingData::getProcess, // 映射为 process
Collectors.joining("-") // 使用 "-" 拼接
)
));
若将上述Map的Value去重在进行拼接需将
Collectors.joining("-")
替换成
Collectors.collectingAndThen(
Collectors.toSet(), // 去重
set -> String.join("-", set) // 使用 "-" 拼接
)
2.List遍历,实体类拼接获取唯一的value
**Map<String, List
3.toMap 的合并函数
// 当key冲突时,保留后出现的值
Map<Integer, Person> map = people.stream()
.collect(Collectors.toMap(
Person::getId,
person -> person,
(existing, replacement) -> replacement // 使用新值替换
));
4.获取最近一周的日期,不包含周天
List