java Stream学习笔记
2024-09-05 14:43:16
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() . 操作(集合元素/数组元素 -> {要做什么} )
最新文章
- Heartbeat+DRBD+MySQL高可用方案
- mvc model 传值两种方式区别
- CDOJ 1431 不是图论 Label:Tarjan || Kosarajn
- 消灭Bug!18款最佳的问题跟踪管理应用程序
- Mtk Ft6306 touch 驱动 .
- Python的安装
- NDK JNI 的关键点
- Java对ArrayList进行排序
- 备份spfile 中的一个误区
- memcpy的用法总结
- 《工作型PPT设计之道》培训心得
- python部落刷题宝学到的内置函数
- 用java代码实现环圈报数
- JUnit4单元测试基础篇
- Chapter 16_4 私密性
- <;C++Primer>;第四版 阅读笔记 第三部分 “类和数据抽象”
- iOS的相对路径和绝对路径
- 【一本通1248:Dungeon Master&;&;洛谷UVA532 Dungeon Master】
- sql server的sysobjects表中xtype字段值的含义
- 《ASP.NET Core In Action》读书笔记系列五 ASP.NET Core 解决方案结构解析1