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特性

posted @   飞航之梦  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示