java基础概念56-Stream流

一、应用场景示例

原始代码:

使用Stream流:

二、Stream流的思想

可以理解为是流水线操作。

2-1、Stream流的作用

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

2-2、Stream流的使用步骤

三、Stream流的使用步骤

3-1、获取一条Sream流

①、单列集合获取Stream流

②、双列集合获取Stream流

③、数组获取Stream流

④、一堆零散数据获取Stream流

要求:数据类型相同!

3-2、Stream流的中间方法

1、filter方法:过滤

【注意】:原来的Stream流只能使用一次!

2、limit方法:获取前几个元素

3、skip:跳过前几个元素

4、distinct方法:去重

【注意】:

String类已经重写了hashCode和equals方法!

自定义类,要手动重写hashCode和equals方法。

5、concat方法:合并两个流

【注意】:

a, b两个流类型要相同,否则,合并的结果是他们的父类!

6、map方法:转换流中的数据类型

3-3、Stream流的终结方法

1、toArray方法:收集到数组中

使用lambda表达式:

java 复制代码
public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("张三丰");
        list.add("照明");
        list.add("张丰");
        list.add("张三");
        list.add("张二丰");
        list.add("张一丰");

        // 方法一
        Object[] arr1 = list.stream().toArray();
        System.out.println(Arrays.toString(arr1));

        // 方法二
        String[] arr2 = list.stream().toArray(new IntFunction<String[]>() {
            @Override
            public String[] apply(int value) {
                return new String[value];
            }
        });
        System.out.println(Arrays.toString(arr2));

        // 方法三
        list.stream().toArray(value -> new String[value]);
    }

2、collect方法:收集到集合中

①、收集到list、set集合中
②、收集到map集合中

【注意】:key不能重复!

使用lambda表达式:

四、小结

相关推荐
哦虎!4 小时前
【JavaEE】网络初识
java
for_ever_love__5 小时前
MySQL ORDER BY 排序优化:从 Using filesort 到索引有序扫描(含双路 / 单路排序原理)
java·mysql·优化·存储·by·order·filesort
我是人✓6 小时前
Java文件上传三方式对比:从传统到SpringBoot
java·开发语言
欣栀♡6 小时前
JVM 频繁 Full GC 先看日志括号里的 cause,jstat 的 FGC 在 JDK 8 上会骗人
java·jvm
IT研究室6 小时前
最新计算机毕业设计选题推荐-基于spring boot的葡萄酒文化宣传网站-网站-文档指导-Java-springboot
java·spring boot·课程设计
慧都小项6 小时前
MyEclipse 中创建和测试 JAX-RS REST 接口:从项目配置到 REST Explorer
java·restful·myeclipse·jax-rs
Wang's Blog6 小时前
Java 项目实战: 交友项目 - 入门案例:编写 Dubbo 服务提供者
java·dubbo·交友
秋饼7 小时前
Spring AI 2.0 结构化输出企业级实战:从 BeanOutputConverter 源码到生产级解析容错
java·ai·技术分享·后端开发
摇滚侠7 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
Cc.Y7 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python