圖說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)