![](/img/trans.png)
[英]Collect List<Object> to Map<String, List<Object>> in Java 8 using stream
[英]Converting list object into custom Map using Java 8 stream object
我有一个类“First”,它包含对Class“Second”的引用作为列表。 我试图通过使用Stream(或)flap Map(或)groupingBy以Java 8方式实现下面的块
foreach(First a: listOfFirst){
for (Second b: a.getSecondDetails()) {
inputMap.put(b, a);
}
}
我试过以下简化方式
listOfFirst.stream()
.flatMap(p -> p.getSecondDetails().stream())
.collect(Collectors.toMap(p -> p, q -> q));
我在这里遗漏了一些东西,请帮帮我
您需要“记住”与每个Second
实例对应的First
实例。 例如,您可以通过创建Map.Entry
实例来执行此操作:
Map<Second,First> result =
listOfFirst.stream()
.flatMap(p->p.getSecondDetails()
.stream()
.map(sec -> new SimpleEntry<>(sec,p))
.collect(Collectors.toMap(Map.Entry::getKey,
Map.Entry::getValue));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.