Stream 流的创建
Stream 的创建方式有多种,可以通过集合、数组、值、函数等来创建 Stream。常见的创建方式有:
通过集合创建 Stream:
Collection.stream()
、Collection.parallelStream()
。通过数组创建 Stream:
Arrays.stream(T array)
、Stream.of()
。通过值创建 Stream:
Stream.of(T... values)
。通过函数创建 Stream:创建无限流
Stream.generate(Supplier s)
、创建无限流Stream.iterate(T seed, UnaryOperator f)
。
上面的代码中,通过list.stream()
方法可以创建一个 Stream 对象,然后通过forEach
方法遍历输出。
Stream 转换为其他数据类型
既然 Stream 可以从集合、数组、值、函数等创建,那么也可以将 Stream 转换为其他数据类型。常见的转换方式有:
Stream 转换为数组:
stream.toArray()
。Stream 转换为 List:
stream.collect(Collectors.toList())
。Stream 转换为 Set:
stream.collect(Collectors.toSet())
。Stream 转换为 Map:
stream.collect(Collectors.toMap())
。Stream 转换为 String:
stream.collect(Collectors.joining())
。Stream 转换为 Collection:
stream.collect(Collectors.toCollection())
。
当 Stream
配合 Collectors
工具类使用时,可以实现更多的转换操作。
Stream 对基本数据类型的支持
Stream 只能引用数据类型,不能直接操作基本数据类型。为了解决这个问题,Stream API 提供了对基本数据类型的支持,分别是IntStream
、LongStream
、DoubleStream
。这三种 Stream 对应于基本数据类型int
、long
、double
。这样可以避免自动装箱和拆箱操作,提高性能。
最后更新于
这有帮助吗?