Java学习笔记_Day27(Stream流)

Stream流的作用:

结合了Lambda表达式,简化集合,数组的操作

1.Stream流的获取

1.单列集合

java 复制代码
ArrayList<String> list = new ArrayList<String>();
        Collections.addAll(list, "A", "B", "C", "D", "E", "F", "G");
        list.stream().forEach(s->System.out.println(s));

2.双列集合

java 复制代码
HashMap<String,Integer> hm = new HashMap<>();
        hm.put("A", 1);
        hm.put("B", 2);
        hm.put("C", 3);
        hm.put("D", 4);
        hm.keySet().stream().forEach(s->System.out.println(s));
        hm.entrySet().stream().forEach(s->System.out.println(s));

3.数组

java 复制代码
int[] arr={1,2,3,4,5};
Arrays.stream(arr).forEach(s->System.out.println(s));

4.一堆零散数据

java 复制代码
Stream.of(1,2,3,4,5).forEach(s-> System.out.println(s));

Stream接口中静态方法of的细节:

方法的形参是一个可变参数,也可以传递数组

但是数组必须是引用数据类型的,如果传递基本数据类型,会把整个数组当做一个元素放到Stream中

Stream流的中间方法

注意1:中间方法返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程

注意2:修改Stream流中的数据,不会影响原来集合或者数组中的数据

3.Stream流终结方法

相关推荐
karry_k1 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
karry_k1 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端
SamDeepThinking5 小时前
从源码到代码:MyBatis-Flex 与 MyBatis-Plus 的逐项对比
java·后端·程序员
她的男孩8 小时前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
荣码10 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
plainGeekDev11 小时前
Gson → kotlinx.serialization
android·java·kotlin
小bo波20 小时前
Java Swing 图形用户界面实验 —— 从算术练习到游戏开发的完整实践
java·课程设计·gui·游戏开发·扫雷·swing
咖啡八杯21 小时前
GoF设计模式——备忘录模式
java·后端·spring·设计模式