gpt4 book ai didi

java - 在 Java 8 中使用流反转 map

转载 作者:搜寻专家 更新时间:2023-11-01 02:56:52 25 4
gpt4 key购买 nike

<分区>

我有一个 Map<String, Set<String>>我需要扭转。这将是一个数据示例:

("AA", ("AA01", "AA02", "AA03")
("BB", ("AA01", "BB01", "BB02")

我要获取的是一个Map<String, Set<String>>的反向关系,像这样:

("AA01", ("AA", "BB"))
("AA02",("AA"))
("AA03",("AA"))
("BB01",("BB"))
("BB02",("BB"))

我能够做到,但是使用 foreach:

private Map<String, Set<String>> getInverseRelationship(Map<String, Set<String>> mappings) {
Map<String, Set<String>> result = new HashMap<>();

mappings.entrySet().stream().forEach(record -> {
String key = record.getKey();
Set<String> itemSet = record.getValue();

itemSet.forEach(item -> {
Set<String> values = (result.containsKey(item))? result.remove(item) : new HashSet<>();
values.add(key);
result.put(item, values);
});
});

return result;
}

使用 Java 8 流 API 是否有更好的方法?

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