gpt4 book ai didi

java - 将 foreach 转换为 lambda 表达式

转载 作者:行者123 更新时间:2023-11-29 04:24:27 26 4
gpt4 key购买 nike

我想将 foreach 更改为 lambda 表达式。我做对了吗?

Map<String, String> countriesToChooseAsMainCountry = new LinkedHashMap<String, String>();

前叉:

for (Country country : project.getCountries()) {
countriesToChooseAsMainCountry.put(Long.toString(country.getId()), country.getName());
}

lambda :

project.getCountries()
.forEach(country -> countriesToChooseAsMainCountry.put(Long.toString(country.getId()), country.getName()));

如果我做对了,我能以某种方式提高它的可读性吗?谢谢。

最佳答案

您可以使用 Collectors.toMap作为:

project.getCountries()
.stream()
.collect(Collectors.toMap(country -> Long.toString(country.getId()), // key
Country::getName, //value
(a, b) -> b, // function to determine the value in case of same country ids (which is essentially overriding the value)
LinkedHashMap::new));

它可以防止 forEach 的非确定性行为尽管对于您当前的实现(要求)来说似乎还不错。

关于java - 将 foreach 转换为 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47098608/

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