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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)