# Stream 流的思想和获取 Stream 流

image-20240227152340813

  • Stream 流的三类方法

    • 获取 Stream 流

      • 创建一条流水线,并把数据放到流水线上准备进行操作
    • 中间方法

      • 流水线上的操作
      • 一次操作完毕之后,还可以继续进行其他操作
    • 终结方法

      • 一个 Stream 流只能有一个终结方法
      • 是流水线上的最后一个操作
    • 生成 Stream 流的方式

      • Collection 体系集合

        使用默认方法 stream () 生成流,default Stream<E> stream ()

      • Map 体系集合

        把 Map 转成 Set 集合,简洁的生成流

      • 数组

        通过 Arrays 中的静态方法 stream 生成流

      • 同种数据类型的多个数据

        通过 Stream 接口的静态方法 of (T ... Values) 生成流

public static void main(String[] args) {
   // Collection 体系的集合可以使用默认 stream () 方法生成流
   ArrayList<String> list = new ArrayList<>();
   Stream<String> stream = list.stream();
   Set<String> set = new HashSet<>();
   Stream<String> stream1 = set.stream();
   // Map 体系的集合间接调用 stream () 方法生成流
   Map<String, Integer> map = new HashMap<>();
   Stream<String> stream2 = map.keySet().stream();
   Stream<Integer> stream3 = map.values().stream();
   Stream<Map.Entry<String, Integer>> stream4 = map.entrySet().stream();
   // 数组通过 Arrays 中的静态方法 stream () 生成流
   String strings[] = {"hello","world","java"};
   Stream<String> stream5 = Arrays.stream(strings);
   // 同种数据类型的多个数据可以通过 Stream 接口的静态方法 of (T ... Values) 生成流
   Stream<String> hello = Stream.of("hello", "world", "java");
}