我对java8流中的方法map()
和forEach()
方法之间的区别感到困惑.例如,
List<String> strings = Lists.newArrayList("1", "2");
Map<String, String> map = Maps.newHashMap();
strings.stream().map(s->map.put(s, s));
System.out.println(map);
Run Code Online (Sandbox Code Playgroud)
我在这里得到了空输出,但如果我改变地图forEach()
就好了
List<String> strings = Lists.newArrayList("1", "2");
Map<String, String> map = Maps.newHashMap();
strings.stream().forEach(s->map.put(s, s));
System.out.println(map);
Run Code Online (Sandbox Code Playgroud)
我可以得到
{1 = 1,2 = 2}
为什么它只是没有运行map()
方法?他们之间有什么区别?