说起stream流大家的第一反应是io,但是实际上谁规定流一定是存在io包里呢?在java8中得益于Lambda表达式的函数式编程,引入了一个全新的概念,stream。
1.优势?
在java8之前我们遍历集合大概就是增强for循环,如果我们想在这个集合里增加一些添加来搜索集合的一些东西,我们会发现代码会变得非常杂乱无章,但是我们现在用stream就会很优雅的解决这个问题。
代码:
-
首先筛选所有姓茂的人;
-
然后筛选名字有三个字的人;
-
最后进行对结果进行打印输出。
package cn.fan; import java.util.ArrayList; import java.util.List; public class Stream1 { public static void main(String[] args) { //第一条件:筛选姓茂的 //第二条件:筛选名字三个字的 //再进行打印 List<String> list = new ArrayList<>(); list.add("茂小喵"); list.add("罗三炮"); list.add("阿龟哥"); list.add("范小饭"); List<String> maoList = new ArrayList<>(); for (String name : list) { if (name.startsWith("茂")) { maoList.add(name); } } List<String> shortList = new ArrayList<>(); for (String name : maoList) { if (name.length() == 3) { shortList.add(name); } } for (String name : shortList) { System.out.println(name); } } }