![](/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.