我知道如何List从Y-> “转换”一个简单的Java Z,即:
List
Y
Z
List<String> x; List<Integer> y = x.stream() .map(s -> Integer.parseInt(s)) .collect(Collectors.toList());
现在我想对地图做基本相同的事情,即:
INPUT: { "key1" -> "41", // "41" and "42" "key2" -> "42" // are Strings } OUTPUT: { "key1" -> 41, // 41 and 42 "key2" -> 42 // are Integers }
解决方案不应限于String-> Integer。就像List上面的例子一样,我想调用任何方法(或构造函数)。
String
Integer
Map<String, String> x; Map<String, Integer> y = x.entrySet().stream() .collect(Collectors.toMap( e -> e.getKey(), e -> Integer.parseInt(e.getValue()) ));
它不如列表代码那么好。您不能Map.Entry在map()调用中构造 new ,因此工作会混入collect()调用中。
Map.Entry
map()
collect()