Java Stream: 将 List<Pod> 转换为 Map<resourceId, Pod> - 高效数据转换
可以使用以下代码实现:
Map<String, pod> podMap = podList.stream()
.collect(Collectors.toMap(pod::getResourceId, Function.identity()));
该代码使用 Java Stream API 将 podList 中的每个 pod 对象转换为 Map.Entry 对象,并将这些 Entry 对象收集到一个 Map 中。Collectors.toMap() 方法接收两个参数:
pod::getResourceId:一个函数,用于获取pod对象的resourceId属性值,作为Map的 key。Function.identity():一个函数,用于返回pod对象本身,作为Map的 value。
Pod 实体类示例:
public class pod {
private Long persistedAt;
private List<pool> parent;
private String resourceId;
private String code;
private String description;
private String type;
private String uuid;
private String projectStatus;
private Long createdAt;
private String manageType;
private String province;
private String createdBy;
private String name;
private String shortName;
private String reportSource;
private Long updatedAt;
private String status;
// 省略 Getter 和 Setter 方法
}
注意:
podList是一个包含pod对象的 List。podMap是一个包含pod对象的 Map,其中 key 是pod对象的resourceId属性值,value 是对应的pod对象。
优点:
- 代码简洁高效,易于理解。
- 利用了 Java Stream API 的优势,提高代码可读性和可维护性。
应用场景:
- 需要根据
pod对象的resourceId属性快速访问pod对象时。 - 需要对
pod对象进行分组或过滤操作时。
原文地址: https://www.cveoy.top/t/topic/oBJQ 著作权归作者所有。请勿转载和采集!