Java学习:Stream流式思想
Stream流
Java 8 API添加了一种新的机制——Stream(流)。Stream和IO流不是一回事。
- 流式思想:像生产流水线一样,一个操作接一个操作。
- 使用Stream流的步骤:数据源→转换成流→操作1→操作2→……
- 数据源(source):可以是集合、数组等。
Stream操作有两个基础特征:
- Pipelining(流水线):流操作会返回流对象(新的对象),以便后续继续进行流操作。
- 内部迭代:不需要像for循环或Iterator一样进行显式的迭代。
遍历及过滤集合中的元素
使用传统方式遍历及过滤集合中的元素
1 import java.util.ArrayList; 2 import java.util.List; 3 4 /* 5 * 使用 传统方式 遍历 及 过滤 集合 6 * 需求 : 7 * 1、第一步过滤,只需要 以 “张” 开头的名字 8 * 2、第二步过滤只需要 ,名字长度为 2 的名字 9 * */ 10 public class Test01Stream { 11 12 public static void main(String[] args) { 13 // 创建一个集合 List , 存储姓名 并根据要求 进行过滤 14 List<String> nameList = new ArrayList<>(); 15 nameList.add("张三"); 16 nameList.add("李四"); 17 nameList.add("王五"); 18 nameList.add("赵六"); 19 nameList.add("田七"); 20 nameList.add("王八"); 21 nameList.add("张四"); 22 nameList.add("张三丰"); 23 24 // 使用传统方式进行过滤 25 26 // 1、第一步过滤,只需要 以张开头的名字 27 28 // 需要 创建一个新的集合 对 第一次过滤之后的 姓名 进行存储 29 List<String> listA = new ArrayList<>(); 30 for (String s : nameList) { //使用增强 for 循环 对 集合进行遍历 31 if (s.startsWith("张")) { 32 listA.add(s);//将过滤后的结果 添加到新的集合中 33 } 34 } 35 36 List<String> listB = new ArrayList<>(); 37 for (String s : listA) { 38 if (s.length() == 2) { 39 listB.add(s); 40 } 41 } 42 43 for (String s : listB) { 44 System.out.print(s + " ");// 最终过滤结果 张三 张四 45 } 46 } 47 }
使用使用Stream流的方式遍历及过滤集合中的元素
1 import java.util.ArrayList; 2 import java.util.List; 3 4 /* 5 * 使用Stream流的方式 遍历 并 过滤集合 6 * 需求 : 7 1、第一步过滤,只需要 以 “张” 开头的名字 8 2、第二步过滤只需要 ,名字长度为 2 的名字 9 * */ 10 public class Test02Stream { 11 12 public static void main(String[] args) { 13 // 创建一个集合 List , 存储姓名 并根据要求 进行过滤 14 List<String> nameList = new ArrayList<>(); 15 nameList.add("张三"); 16 nameList.add("李四"); 17 nameList.add("王五"); 18 nameList.add("赵六"); 19 nameList.add("田七"); 20 nameList.add("王八"); 21 nameList.add("张四"); 22 nameList.add("张三丰"); 23 24 // 使用 Stream 流的方式 ,对集合进行遍历,并过滤 25 // 1、第一步过滤,只需要 以 “张” 开头的名字 26 27 // 将集合转换为 Stream流, 直接调用Collection接口的一个默认方法 stream 28 nameList.stream().filter(s->s.startsWith("张")) 29 .filter(s->s.length()==2) 30 .forEach(s-> System.out.print(s+" "));// 输出结果 : 张三 张四 31 } 32 }
愿路途漫长,以后莫失莫忘。 愿你不骄不躁,安稳顺心。
作者:菜鸟-传奇
本文版权归作者和博客园共有,重在学习交流,不以任何盈利为目的,欢迎转载。
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。