如何转换这段代码:
private static Map<CustomObj<? extends CustomOtherObj>, CustomEnumeration> map;
if (map == null) {
map = Arrays.stream(CustomEnumeration.values())
.collect(Collectors.toMap(x -> x.source, x -> x));
}
进入Java 7等价? (Arrays.stream.collect(Collectors....)
部分。
基本上,上面的代码将一些元素放在地图中。
答案 0 :(得分:7)
非常简单
if (map == null) {
map = new HashMap<>();
for(CustomEnumeration e : CustomEnumeration.values())
map.put(e.source, e);
}
答案 1 :(得分:1)
map()
lambda只对集合中的每个元素执行操作。因此,它大致相当于foreach
- 样式for
循环。换句话说,见下文。我保留x
(不是一个很好的变量名称)来显示相似性。
if (null == map) {
map = new HashMap<CustomObj<? extends CustomOtherObj>, CustomEnumeration>();
for (CustomEnumeration x : CustomEnumeration.values()) {
map.put(x.source, x);
}
}