图说jdk1.8新特性(4)--- stream


总述

  • jdk1.8引入了Stream相关的API,通过该API。可以实现流式编程,使你写代码的时候行云流水
  • Stream使得集合的转换变得更加简单,原来可能需要写多个for循环或者多个if判断的,直接一个stream

操作就可以实现


细说

		List arr = new ArrayList<>();
		arr.add(1);
		arr.add(2);
		arr.add(3);
		arr.add(4);
		arr.stream().map(i -> i*2).collect(Collectors.toList());
		System.out.println(arr);
		arr.stream().forEach(i -> {i = i*2;});
		System.out.println(arr);

---输出为:
[1, 2, 3, 4]
[1, 2, 3, 4]

说明:

  • Stream的用法遵循三个步骤: 创建---》转换---》聚合
  • Stream的API支持对列表的多种操作,可以实现list转map,map转list等各种操作
  • Stream操作不会修改原来集合类型的值

注意点:

  • 数组创建Stream应使用Arrays.stream(brr) , 列表创建Stream应使用list.stream()。如果直接调用Stream.of方法,实际上调用的是 public static Stream of(T t) 而不是 public static Stream of(T... values)