Java8 特性笔记(五) NumercStream

标题中的NumercStream是什么意思呢,今天我们说的是Stream的具体化,

之前我们在操作的时候都是用的Stream,当然没有错,但是当我们操作Int类型的数据如:

Stream<Integer> stream = Arrays.stream(new Integer[]{1,2,3,4,5,6,7,8});
Integer result = stream.reduce(0, Integer::sum);

然而在我们实际开发中我们会发现,如果是这种情况下我们用的不是这个Stream 而是IntStream,到底是什么呢,可以这样 理解, InteStream是操作int类型的,类型是4字节32位的,比较节约内存,因此一般用IntStream,那怎么用呢,接下来看操作

Stream<Integer> stream = Arrays.stream(new Integer[]{1,2,3,4,5,6,7,8});
IntStream intstream = stream.mapToInt(i->i.intValue());
//在intStream的中有很多简便的方法供我们选择

int  result = instream.filter(i ->i>3).sum();
//那如果我又想转到Stream呢,怎么操作,也有办法
Stream<Integer> boxed = intStream.boxed();
例子:实现勾股定律
int a = 9;
// 1...100
IntStream.rangeClosed(1,1000).filter(b -> Math.sqrt(a*a+b*b)%1==0);
intStream.forEach(System.out::println)
//上面两步操作可以查看在100以内和9 在平方和再开发的情况下能是整数的情况
IntStream.rangeClosed(1,1000)
.filter(b -> Math.sqrt(a*a+b*b)%1==0)
.boxed().map(x->new Int[a,x,(int)Math.sqrt(a*a+b*b)])

注意 上面的boxed是装箱操作也就是将IntStream转为Stream

在这里提示大家 其实 DoubleStream 等都是类似的,这里讲了IntStream其他的我相信大家都能自己写出来,好了,到了这里关于Stream的基础说明基本上告一段落了,后面我会继续更新有关Optional的相关知识,这些都是相关联的一些java8特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值