java8 转换Iterable 至 Stream

本文简要介绍在java8中转换java Iterable对象至Stream,利用Stream执行标准操作。

1.转换Iterable 至 Stream

Iterable接口设计的目的是保持通用性,不提供任何stream方法。简单来说,你可以通过StreamSupport.stream() 方法从it实例中获取stream。

下面看一个Iterable实例:

Iterable iterable

= Arrays.asList("Testing", "Iterable", "conversion", "to", "Stream");

转换为stream的代码:

StreamSupport.stream(iterable.spliterator(), false);

注意,StreamSupport.stream() 方法第二个参数决定返回结果stream是否为并行。true为并行,否则为串行。

测试代码:

@Test

public void givenIterable_whenConvertedToStream_thenNotNull() {

Iterable iterable

= Arrays.asList("Testing", "Iterable", "conversion", "to", "Stream");

Assert.assertNotNull(StreamSupport.stream(iterable.spliterator(), false));

需要了解:流不能重用,但Iterable可以,同时提供了spliterator()方法,其返回java.lang.Spliterator 实例。

2.执行流操作

请看示例代码:

@Test

public void whenConvertedToList_thenCorrect() {

Iterable iterable

= Arrays.asList("Testing", "Iterable", "conversion", "to", "Stream");

List result = StreamSupport.stream(iterable.spliterator(), false)

.map(String::toUpperCase)

.collect(Collectors.toList());

assertThat(

result, contains("TESTING", "ITERABLE", "CONVERSION", "TO", "STREAM"));

}

3.总结

本文简短地展示了如何利用java8 StreamSupport.stream() 方法转换Iterable实例至stream实例,然后利用stream执行标准操作,如在其他任何Collection实例上操作的一样。

java iterable stream,java8 转换Iterable 至 Stream相关推荐

  1. java outputstream api,Java8 stream API以及常用方法

    Java8引入了全新的Stream API,Stream API为Java编程提供了丰富的函数式编程操作. Stream API与Java提供的其他集合类型有本质的区别,具体如下: java.io的I ...

  2. java stream byte_乐字节-Java8新特性之Stream流(上)

    上一篇文章,小乐给大家介绍了<Java8新特性之方法引用>,下面接下来小乐将会给大家介绍Java8新特性之Stream,称之为流,本篇文章为上半部分. 1.什么是流? Java Se中对于 ...

  3. Java进阶知识 —— Java8 Stream语法

    前言: 讲Stream之前,先来用个小需求带入本文.毕竟代码看的最清楚. 正文: 项目某个页面有个需求,将关键词和集合比对,判断是否存在关键词,这种需求想必是再普通不过,最简单的就是循环迭代了. 上来 ...

  4. java stream optional_java成神之——Stream和Optional

    Stream流 基本使用 Stream myStream = Stream.of("a", "", "b", "c", ...

  5. 【java8新特性】——Stream API详解(二)

    一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...

  6. 玩转Java8中的 Stream 之从零认识 Stream

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:litesky www.jianshu.com/p/11c9 ...

  7. 使用Java8新特性(stream流、Lambda表达式)实现多个List 的笛卡尔乘积 返回需要的List<JavaBean>

    需求分析: 有两个Long类型的集合 : List<Long> tagsIds; List<Long> attributesIds; 现在需要将这两个Long类型的集合进行组合 ...

  8. Java8新特性之Stream流式编程

    特地感谢鲁班大叔的分享,原学习地址:Java8 Stream流式编程爱 撸码就是快,流式编程好 代码传家宝 以下是学习过程整理的笔记 1.简介 Stream 流处理,首先要澄清的是 java8 中的 ...

  9. Java8新特性之Stream流的使用

    Stream 是Java8中处理集合的关键抽象概念,它可以对集合进行非常复杂的查找.过滤.筛选等操作,在新版的JPA中,也已经加入了Stream. 1.Stream的操作步骤 Stream有如下三个操 ...

最新文章

  1. 尚硅谷学习:createElement 方法笔记
  2. python导入处理txt文件-python读取大文件踩过的坑——读取txt文件词向量
  3. 【干货分享】云服务平台的架构及优势(上)
  4. NTP时间服务器搭建
  5. 【opencv】2.opencv绘图、视频等
  6. ASP.NET MVC3 + Ninject.Mvc3 依赖注入原来可以这么简单
  7. Linux Shell脚本编程--grep命令
  8. java中有scoreframe类型嘛_java构造函数的三种类型总结
  9. 分布式事务中间件你知道哪些?
  10. BIND配置文件详解(二)
  11. 学习使用TestNG中的注解(2)——@Factory的使用
  12. java fx combox,combobox – 带有FXML的组合框JavaFx
  13. Oracle的exp导出、imp导入数据命令
  14. 二叉树的镜像(剑指 Offer 27)
  15. 2020年下半年信息安全工程师下午真题及答案解析
  16. 新高考十二种选科情况下,再选科目的考室安排的探索2.0版
  17. 第三方统计分析埋点工具对比,神策、Ptmind、GrowingIO、国双,还有谷歌分析,谁更好?...
  18. 【Verilog数字系统设计——完成如下公式所表示的逻辑功能模块】
  19. excel表格拆分多个表如何操作?
  20. 【一句日历】2019年2月

热门文章

  1. 关于Ajax局部刷新
  2. centos7识别验证码字体
  3. js破解 微博登录参数
  4. java遍历jsonobject_jsonobject 遍历取值
  5. Consul Template
  6. 计算机图形绘制三棱柱源代码,基于MFC用OpenGL画得一个三棱柱
  7. 为了情怀,各行各业引发离职潮,亮点看财务人的!!
  8. IT人的日韩俄语歌单:已然被二次元的“恋爱循环”洗脑
  9. 编程语言、标记语言、脚本语言
  10. PyMC3 - GLM之鲁棒线性回归