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

  • 2019 年 10 月 31 日
  • 筆記

总述

  • 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)