简介
流式操作也叫做函数式操作,是Java8新出的功能
流式操作主要用来处理数据(比如集合),就像泛型也大多用在集合中一样(看来集合这个小东西还是很关键的啊,哪哪都有它)
下面我们主要用例子来介绍下,流的基操(建议先看下lambda表达式篇,里面介绍的lambda表达式、函数式接口、方法引用等,下面会用到)
先来看下目录
目录
-
流是什么
-
老板,上栗子
-
流的操作步骤
-
流的特点
-
流式操作和集合操作的区别
正文
1. 流是什么
流是一种以声明性的方式来处理数据的API
什么是声明性的方式?
就是只声明,不实现,类似抽象方法(多态性)
2. 老板,上栗子
下面我们举个栗子,来看下什么是流式操作,然后针对这个栗子,引出后面的相关概念
需求:筛选年龄大于1的猫(猫的1年≈人的5年),并按年龄递增排序,最后提取名字单独存放到列表中
public class BasicDemo { public static void main(String[] args) { // 以下猫的名字均为真名,非虚构 List<Cat> list = Arrays.asList(new Cat(1, "tangyuan"), new Cat(3, "dangdang"), new Cat(2, "milu")); // === 旧代码 Java8之前 === List<Cat> listTemp = new ArrayList<>(); // 1. 筛选 for(Cat cat: list){ if(cat.getAge()>1){ listTemp.add(cat); } } // 2. 排序 listTemp.sort(new Comparator<Cat>() { @Override public int compare(Cat o1, Cat o2) { // 递增排序