【发布时间】:2019-04-15 02:33:00
【问题描述】:
我想把地图转换成地图
到目前为止我在下面尝试过
Map<Integer, String> inMap = new HashMap();
inMap.put(100, "Test1");
inMap.put(101, "Test2");
inMap.put(102, "Test3");
如何在 Entry::getKey 上应用 String.valueOf()?
Map<String, String> collect = inMap.entrySet().stream().collect(Collectors.toMap(Entry::getKey, Entry::getValue)); //how to apply String.valueOf() on Entry::getKey
这是有效的
Map<String, String> map1 = inMap.entrySet().stream().collect(Collectors.toMap(entry -> String.valueOf(entry.getKey()), Map.Entry::getValue, (a, b) -> b)); //Working
为什么 String.valueOf(entry.getKey()), entry.getValue() 即使它的 biFunctional 也不起作用?
Map<String, String> map2 = inMap.entrySet().stream().collect(Collectors.toMap(entry -> String.valueOf(entry.getKey()), entry.getValue())); //
【问题讨论】:
-
因为它被解析为
entry -> String.valueOf(entry.getKey())和entry.getValue()。
标签: java java-8 java-stream