IntStream

构造IntStream

IntStream.generate() 产生一个无限流,这里需要传入一个IntSupplier函数式接口实例 。
IntStream.range()产生指定区间的有序IntStream,这里需要传入一个区间(左闭右开),产生的元素不包含最后一个。
IntStream.rangeClosed()产生指定区间的有序IntStream,与IntStream.range()不同的是,产生的元素包含最后一个,即左闭右闭。
IntStream.of()填充一个或多个int元素构造流。
IntStream.empty()产生一个空元素的流。
IntStream.builder()会产生一个builder用于构建stream,通过builder的add方法添加元素,build方法构造流。
IntStream.iterate()产生一个有序的无限流,需要传入初始值,对元素操作的函数。
IntStream.concat() 将两个流合并成一个流。

过滤IntStream

filter() 根据条件过滤元素

转换IntStream

map() 产生的仍然是IntStream,可以对元素进行数学上的操作,加减乘除等等
mapToObj()转成对象流,例如String等
mapToLong()转成long类型流
mapToDouble()转成double类型流
asLongStream()快速转成Long类型的Stream
asDoubleStream()快速转成Double类型的Stream

使用IntStream

//构造6个线程
IntStream.range(0, 5).boxed().map(i->new Thread(()->System.out.println(Thread.currentThread().getName()))).forEach(Thread::start);
//定义2个线程,并保存在threads中,源码见我的博客Thread
List<Thread> threads= IntStream.range(1, 3).mapToObj(ThreadJoin::create).collect(toList());
//只输出5以上的元素
IntStream.of(1, 5, 3, 7, 8, 3, 5, 6).filter(e -> e >= 5).forEach(System.out::println);
//将每个元素都变成之前的2倍
IntStream.of(1, 2, 3).map(e -> e * 2).forEach(System.out::println);
//对象转换
IntStream.of(1, 2, 3).mapToObj(String::valueOf).map(Object::getClass).forEach(System.out::println);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值