如何解决如果键在子属性列表内,如何使用Collectors.toMap收集对象?
class MyObject {
private List<MyChildObject> children;
}
class MyChildObject {
private String key;
}
我的目标是将MyObject
的列表转换为Map<String,MyObject>
为String
的{{1}}。
我的尝试在MyChildObject.key
处停止
谢谢。
解决方法
您可以使用flatMap
来展平儿童,制作儿童钥匙和MyObject
对,然后使用Collectors.toMap
作为地图收集
myObjectList.stream()
.flatMap(e -> e.getChildren()
.stream()
.map(c -> new AbstractMap.SimpleEntry<>(c.getKey(),e)))
.collect(Collectors.toMap(e -> e.getKey(),e -> e.getValue()));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。