IntStream.iterate的简单使用

IntStream.iterate的简单使用

注意:IntStream是jdk1.8新增的一个接口,iterate是他的一个静态实现方法(注意jdk1.8开始,接口中的default方法或者static方法可以定义方法体,而不是只能定义抽象方法了,上面的IntStream接口就是。)

看他的方法介绍:

Returns an infinite sequential ordered IntStream produced by iterative application of a function f to an initial element seed, producing a Stream consisting of seed, f(seed), f(f(seed)), etc.

大意:通过迭代函数,生成一个有序无限的Int数据流。(由于是无限流,一般都是配合limit来使用)。

我们来看一个使用案例:

IntStream.iterate(2, n -> n * 3).limit(10).forEach(System.out::println);

// 返回
2
6
18
54
162
486
1458
4374
13122
39366

这个例子是首项为2,等比数列公比为3的一个等比数列,取前10项打印输出。

看下这个方法的参数iterate(int seed, IntUnaryOperator f),seed也就是上面案例中的第一个参数2,seed表示种子,你可以理解为初始值或者首项值(seed的命名方式在jdk中比较常见,比如Random类就定一个类变量seed,来帮助生成随机数)。IntUnaryOperatorUnary表示一元,这个接口表示一元的int参数的stream表达式类似于x -> ax+b这种的表达式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值