【发布时间】:2017-11-03 14:52:43
【问题描述】:
我想将 foreach 更改为 lambda 表达式。我说的对吗?
Map<String, String> countriesToChooseAsMainCountry = new LinkedHashMap<String, String>();
Foreach:
for (Country country : project.getCountries()) {
countriesToChooseAsMainCountry.put(Long.toString(country.getId()), country.getName());
}
拉姆达:
project.getCountries()
.forEach(country -> countriesToChooseAsMainCountry.put(Long.toString(country.getId()), country.getName()));
如果我做对了,我能以某种方式提高它的可读性吗?谢谢。
【问题讨论】:
-
您的两个“Foreach”与“Lambda”示例完全相同。你只是在用东西填充地图。
-
你能编辑这个问题,让它有意义吗?就像@Mena 说的,Foreach 和 Lambda 代码是一样的。
-
@Mena 对不起,我的错,复制了同样的东西,更正了。
-
编辑:是的,你的成语是等价的。
-
@cerbin 使用命令式 pre-lambda 习语可能更安全,但我怀疑您也可以使用 lambda 或 nullpointer 的答案。
标签: java lambda foreach java-8