1、Stream与io无关。

2、Stream和用普通的循环没有太大区别,甚至时间复杂度更高,代码可读性差(通常代码行数更少)。

3、流操作就是把循环要做的任务单独抽取出来,最终通过编译在一起。

来看一下实现一个例子:

import java.util.List;
import java.util.ArrayList; public class Demo {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("张强");
list.add("张三丰"); //普通写法
List<String> zhangList = new ArrayList<>();
for (String name : list) {
if (name.startsWith("张") && name.length() == 3) {
System.out.println(name);
}
} //流式写法
list.stream()
.filter(s -> s.startsWith("张"))
.filter(s -> s.length() == 3)
.forEach(s ->System.out.println(s));
}
}

实际上代码并没有简洁多少,反而可读性变差。当然简洁的代码要么被编译器编程成时间复杂度更低的代码,要么就是牺牲时间复杂度。

Java流操作还有其他的一些操作,常见的有:

map操作、for each操作、limit操作。。。。

总结起来就是

1、集合对象/数组对象 .stream() . 操作(集合元素/数组元素 -> 条件 )

2、集合对象/数组对象 .stream() . 操作(集合元素/数组元素 -> 新的引用)

3、集合对象/数组对象 .stream() . 操作(集合元素/数组元素 -> {要做什么} )

最新文章

  1. Heartbeat+DRBD+MySQL高可用方案
  2. mvc model 传值两种方式区别
  3. CDOJ 1431 不是图论 Label:Tarjan || Kosarajn
  4. 消灭Bug!18款最佳的问题跟踪管理应用程序
  5. Mtk Ft6306 touch 驱动 .
  6. Python的安装
  7. NDK JNI 的关键点
  8. Java对ArrayList进行排序
  9. 备份spfile 中的一个误区
  10. memcpy的用法总结
  11. 《工作型PPT设计之道》培训心得
  12. python部落刷题宝学到的内置函数
  13. 用java代码实现环圈报数
  14. JUnit4单元测试基础篇
  15. Chapter 16_4 私密性
  16. &lt;C++Primer&gt;第四版 阅读笔记 第三部分 “类和数据抽象”
  17. iOS的相对路径和绝对路径
  18. 【一本通1248:Dungeon Master&amp;&amp;洛谷UVA532 Dungeon Master】
  19. sql server的sysobjects表中xtype字段值的含义
  20. 《ASP.NET Core In Action》读书笔记系列五 ASP.NET Core 解决方案结构解析1

热门文章

  1. Nginx配置https以及配置说明
  2. JZOJ2020年8月11日提高组T2 宝石
  3. 单调栈高封装模板hia hia hia
  4. 第三十四章、PyQt中的输入部件:QComboBox组合框功能详解
  5. swpuCTF2019 web1 无列名注入
  6. 【面试】关于get和post两种方法的不同。
  7. 题解-Words
  8. Python零散知识点记录
  9. ss命令结合zabbix对socket做监控
  10. C#数据结构-线索化二叉树