图说jdk1.8新特性(4)--- stream
总述
- jdk1.8引入了
Stream
相关的API,通过该API。可以实现流式编程,使你写代码的时候行云流水Stream
使得集合的转换变得更加简单,原来可能需要写多个for循环或者多个if判断的,直接一个stream操作就可以实现
细说
List<Integer> 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<T> Stream<T> of(T t)
而不是public static<T> Stream<T> of(T... values)
黎明前最黑暗,成功前最绝望!