gpt4 book ai didi

java - 使用 Java 8 流 API 按多个属性对对象进行分组

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

鉴于我们有一个银行列表,每个银行都有多个办事处,

public class Bank {
private String name;
private List<String> branches;
public String getName(){
return name;
}
public List<String> getBranches(){
return branches;
}
}

例如:

Bank "Mizuho": branches=["London", "New York"]
Bank "Goldman": branches = ["London", "Toronto"]

给定银行列表,我会得到每个城市的银行代表 map 。在上面的例子中,我需要一个

的结果
Map["London"] == ["Mizuho", "Goldman"]
Map["New York"] == ["Mizuho"]
Map["Toronto"] == ["Goldman"]

如何使用 Java 8 API 实现该结果?使用 Java8 之前的版本很简单,但很冗长。谢谢。

最佳答案

Map<String, Set<Bank>> result = new HashMap<>();
for (Bank bank : banks) {
for (String branch : bank.getBranches()) {
result.computeIfAbsent(branch, b -> new HashSet<Bank>()).add(bank);
}
}

关于java - 使用 Java 8 流 API 按多个属性对对象进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44171555/

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