当前位置: 首页 > news >正文

初爽Stream流

体验Stream流的作用:

需求:

按照下面的要求完成集合的创建和遍历

创建一个集合,存储多个字符串元素

要求:

1.把所有以“张”开头的元素存储到新集合中

2.把“张”开头的,长度为3的元素再存储到新集合中

3.遍历打印最终结果

解:

未使用Stream流前:
package com.itheima.a01mystream;
​
import java.util.ArrayList;
​
public class StreamDemo1 {public static void main(String[] args) {//1.创建集合ArrayList<String> list1=new ArrayList<>();
​//2.添加元素list1.add("张无忌");list1.add("周芷若");list1.add("赵敏");list1.add("张强");list1.add("张三丰");
​//3.完成要求//3.1 把所有以“张”开头的元素存储到新集合中ArrayList<String> list2=new ArrayList<>();for (String name : list1) {if(name.startsWith("张")){ //本例中startsWith方法是找开头为张的进行添加list2.add(name);}}
​//3.2 把“张”开头的,长度为3的元素再存储到新集合中ArrayList<String> list3=new ArrayList<>();for (String name : list2) {if(name.length()==3){ //集合list2中已经满足“张”开头,所以只需要判断名字长度即可list3.add(name);}}
​//3.3 遍历打印最终结果for (String name : list3) {System.out.println(name);}/*运行结果为张无忌张三丰*/
​}
}
​
使用Stream流后:
package com.itheima.a01mystream;
​
import java.util.ArrayList;
​
public class StreamDemo1 {public static void main(String[] args) {//1.创建集合ArrayList<String> list1 = new ArrayList<>();
​//2.添加元素list1.add("张无忌");list1.add("周芷若");list1.add("赵敏");list1.add("张强");list1.add("张三丰");
​//3.完成要求list1.stream().filter(name -> name.startsWith("张")).filter(name -> name.length() == 3).forEach(name -> System.out.println(name));/*list1.stream()先获取stream流,第一次过滤判断:.filter(name -> name.startsWith("张"))filter里的参数是Lambda表达式,name依次表示每一个姓名,name -> name.startsWith("张")代表只把张开头的姓名留下,其余的过滤掉第二次过滤判断:.filter(name -> name.length() == 3)filter里的参数是Lambda表达式,name依次表示每一个姓名,name -> name.length() == 3代表只把长度为3的姓名留下,其余的过滤掉.forEach(name -> System.out.println(name));中forEach方法为遍历,参数为Lambda表达式,name为姓名,System.out.println(name)代表打印姓名,整体就是依次打印所有姓名*//*运行结果为张无忌张三丰*/}
}
​

其中用到了startsWith方法,该方法属于String类:



http://www.mrgr.cn/news/17152.html

相关文章:

  • 【Spring】Spring Boot入门(1)
  • 3.2、数据结构-数组、矩阵和广义表
  • list的使用与迭代器的模拟实现
  • 这才是CSDN最系统的网络安全学习路线(建议收藏)
  • Linux文件共享
  • 关于自己部署AI大模型踩的坑(三)—— 部署
  • Qt 实现不规则的部件或者窗口
  • 探索Python数据持久化的秘密:ZODB库的神奇之旅
  • 金融风控领域的15大顶级学术期刊
  • 【Rust练习】11.struct
  • 可能是支持属性最多的类似验证码的输入控件了。一个超好用的验证码,卡号,车牌号,IP地址-输入控件 - 掘金
  • 基于C语言开发一个职工管理系统
  • C++学习笔记----6、内存管理(一)---- 使用动态内存(1)
  • 中英翻译,就看这五款工具!
  • 使用 nuxi clean 命令清理 Nuxt 项目
  • PCB设计中” 铺铜的方式“导致电焊机设计失败
  • 基于yolov8的102种昆虫检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • 探索TinyDB:轻量级数据库的优雅之旅
  • 滚动视图ScrollView
  • AI Acronyms