gpt4 book ai didi

java-8 - 使用 Java 8 Streams 创建和反转 MultiMap

转载 作者:行者123 更新时间:2023-12-04 14:55:26 25 4
gpt4 key购买 nike

如何转换 Set<Result>Map<Item, Set<String>>SetMultimap<Item, String>使用 Java 8 流或 Multimaps,其中 Result是:

class Result {
String name;
Set<Item> items;
}

例如,我从:
result1:
name: name1
items:
- item1
- item2
result2:
name: name2
items:
- item2
- item3

并以:
item1:
- name1
item2:
- name1
- name2
item3:
- name2

最佳答案

下面代码片段中的两个重要方法是 Stream.flatMap & Collectors.mapping :

import java.util.Map.Entry;
import java.util.AbstractMap.SimpleEntry;
import static java.util.stream.Collectors.*;

results.stream()
//map Stream<Result> to Stream<Entry<Item>,String>
.flatMap(it -> it.items.stream().map(item -> new SimpleEntry<>(item, it.name)))
//group Result.name by Item
.collect(groupingBy(Entry::getKey, mapping(Entry::getValue, toSet())));

关于java-8 - 使用 Java 8 Streams 创建和反转 MultiMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43245536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com