Stream()操作

Stream的内容很多,网上的总结文章也有很多,我今天不想写那么多

int[] intArray = { 5, 10, 21 };
List myList = Arrays.stream(intArray).boxed().collect(Collectors.toList());

把这两行
代码搞懂就结束
首先这是一个Java8的新特性,流操作
采用Stream 的 redure 方法 进行数值归约操作会涉及到基本数值类型和引用数值类型之间的装箱、拆箱操作,因此效率较低;
当流操作为纯数值操作时,使用数值流能获得较高的效率;
因此StreamAPI提供了三种数值流:IntStream、DoubleStream、LongStream;

IntStream intStream = Arrays.stream(new int[]{ 1, 2, 3 });

所以呢 Arrays.stream(intArray) 相当于将Stream转化为IntStream

boxed是用来将数值流再转化为Stream

collect也就是收集器,是Stream一种通用的、从流生成复杂值的结构。只要将它传给collect方法,也就是所谓的转换方法,其就会生成想要的数据结构(List,map,set等)。这里不得不提下,Collectors这个工具库,在该库中封装了相应的转换方法。当然,Collectors工具库仅仅封装了常用的一些情景,如果有特殊需求,那就要自定义了
转一篇写的不错的文章
https://blog.csdn.net/IO_Field/article/details/54971608
https://irusist.github.io/2016/01/04/Java-8%E4%B9%8BCollector/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,242评论 25 708
  • 不努力 谁替你去实现梦想? 不努力 成功怎么会不请自来? 不努力 怎么能过上自己想过的生活? 我想将来拥有自己的一...
    孤独的在路上阅读 246评论 0 0
  • 早起,出发。一路向南,9点的课,6点半出发,此刻,已在路上。 昨天照旧约的朱师傅。用朱师傅的车已有一年多,自从用过...
    培训师李云阅读 480评论 0 1
  • 60岁的年龄,30岁的心脏。那是N年前一款保健品的广告语。广告,大家都懂的。 你家老头70多岁,恢复像50多岁的人...
    丁若木阅读 634评论 3 13