java新建流_Java8 Stream 创建流

75931bf99f9f

image.png

创建流的方法有很多,常见的如:

从Collection集合创建

根据数值范围创建数值流

从一系列值

从数组

从文件

由函数来生成无限流

一、 从Collection集合

Stream stream = new HashSet()

.stream();

Stream stringStream = new ArrayList()

.stream();

二、 根据数值范围创建数值流

IntStream intStream = IntStream.rangeClosed(1, 100);

三、 从一系列值

Stream提供了一个静态方法来根据一系列值生成一个流

Stream integerStream = Stream.of(1, 2, 3);

Stream stringStream = Stream.of("喜欢", "天文", "的", "pony", "站长");

AppleStream apple = new AppleStream();

Stream appleStream = Stream.of(apple, apple, apple);

四、 从数组

//重载了支持特定的基本类型流

IntStream intStream = Arrays.stream(new int[]{1, 2, 3});

LongStream longStream = Arrays.stream(new long[]{1L, 2L, 3L});

DoubleStream doubleStream = Arrays.stream(new double[]{1D, 2D, 3D});

Stream stringStream = Arrays.stream(new String[]{"喜欢", "天文", "的", "pony", "站长"});

AppleStream apple = new AppleStream();

Stream appleStream = Arrays.stream(new AppleStream[]{apple, apple, apple});

五、 从文件

准备文件

75931bf99f9f

image.png

Stream linesStream = Files.lines(Paths.get("fileStream.txt"));

linesStream.forEach(System.out::println);

结果

75931bf99f9f

image.png

六、由函数来生成无限流

Java8提供了Stream.iterate()和Stream.generate()来生成无限流,这两个方法会根据给定的表达式来生成包含无限个数据的流,所以一般结合limit()来使用。

迭代: Stream.iterate(T seed,Function apply)

生成: Stream.generate(Supplier s)

// 给定一个初始值seed,和一个`接收一个入参,并带有返回值的函数`

Stream.iterate(10, x -> x + 5)

.limit(10)

.forEach(System.out::println);

10

15

20

25

30

35

40

45

50

55

Random random = new Random();

// 接收一个 `无入参,有返回值` 的函数

Stream.generate(() -> random.nextInt(100))

.limit(10)

.forEach(System.out::println);

60

56

6

61

7

30

97

64

26

54

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值