【Java|Stream流】获取各个数据类型的Stream流

news2024/12/27 9:59:35

文章目录

  • 1.Stream流介绍
  • 2.获取Stream流
    • 2.1单列集合
    • 2.2双列集合
    • 2.3数组
    • 2.4零散的数据
  • 3.Stream.of()方法的注意事项

1.Stream流介绍

在 Java 中,Stream 流是一种处理集合数据的高级方式,可以方便地对集合进行各种操作,如过滤、映射、排序、聚合等。

Stream流的使用步骤:

  1. 先得到一条Stream流,并把数据放上去
  2. 利用Stream流中的API进行各种操作
    • 中间方法:方法调用完毕之后,还可以调用其他方法
    • 终结方法:最后一步,调用完毕之后,不能调用其他方法

2.获取Stream流

各个数据类型获取Stream流的方法如下:

image-20240901192218060

2.1单列集合

首先是单列集合获取Stream流:

示例:

    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        Collections.addAll(arrayList, "a", "b", "c", "d", "e", "f");
        // 获取Stream流
        Stream<String> stream = arrayList.stream();
        stream.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
    }

可以使用链式调用进行简化:

    public static void main(String[] args) {
        ArrayList<String> arrayList = new ArrayList<>();
        Collections.addAll(arrayList, "a", "b", "c", "d", "e", "f");
        arrayList.stream().forEach(s -> System.out.println(s));
    }

2.2双列集合

示例:

    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        hashMap.put("k1", "v1");
        hashMap.put("k2", "v2");
        hashMap.put("k3", "v3");
        hashMap.put("k4", "v4");

        // 获取Stream流
        // 方法1
        hashMap.keySet().stream().forEach(e -> System.out.println(e));
        
        // 方法2
        hashMap.entrySet().stream().forEach(e -> System.out.println(e));
    }

运行结果:

image-20240901193241368

2.3数组

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        // 获取Stream流
        Arrays.stream(arr).forEach(e -> System.out.println(e));
    }

运行结果:

image-20240901193728438

除了基本数据类型,引用数据类型也是可以的

2.4零散的数据

public static void main(String[] args) {
    Stream.of(1, 2, 3, 4, 5).forEach(e -> System.out.print(e + " "));
    System.out.println();
    Stream.of("a", "b", "c", "d").forEach(e -> System.out.print(e + " "));
}

注意:这种方式必须要保证数据的类型是一致的

3.Stream.of()方法的注意事项

查看Stream.of()方法的参数可以看到,方法的参数是一个可变参数

image-20240901194301905

可变参数的底层其实就是一个数组

image-20240901194529345

能看到数据打印出来了,但是数组的类型不止是引用数据类型,还有基本数据类型

image-20240901194632014

因此Stream.of()方法的形参可以是一堆零散的数据,也可以是数组,但必须要是引用类型的数组. 如果传递的是基本数据类型的数组,会把整个数组当成一个元素放到Stream流当中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099163.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python:序列1~n的立方之和==序列1~n的和之平方

pip install sympy 或者 Anaconda 3 自带 sympy 点击 【Jupyter Notebook】 这是我最喜欢的代数恒等式之一 from IPython.display import Latex Latex(r"$1^32^33^3\cdotsn^3 (123\cdotsn)^2 $") Latex(r"$\sum_{i1}^n i^3 (\sum_{i1}^n i)^2 $")# 求…

小试牛刀-SOL链创建Token代币

目录 1.编写目的 2.账户结构 3.环境及使用依赖 4.步骤分解 4.1.导入相关依赖 4.2. 初始化变量 4.3. 创建并初始化Mint Account 4.4. 创建并初始化Metadata Account 4.5. 发送创建和初始化mint Account 4.6 铸造代币 5.源码分享 Welcome to Code Blocks blog 本篇文…

视频孪生智慧监所平台,实现监管数据的统一管理和立体直观呈现

针对监所传统方式难以有效管控&#xff1b;监所视频监控相似度极高&#xff0c;难以辨识&#xff0c;工作人员劳动强度大&#xff1b;监所行业涉及的系统众多&#xff0c;缺少统一高效的管理&#xff1b;监所行业对系统应急响应能力、智慧化程度要求高等痛点问题。在智慧监所建…

24数学建模国赛及提供助力(12——存贮论)!!!!

需要资料和助攻的小伙伴们可以文章末尾获取链接&#xff01;&#xff01;&#xff01;&#xff01; 点击链接加入群聊获取资料以及助攻https://qm.qq.com/q/NGl6WD0Bky

免费作图软件推荐,六款工具助你提升设计效率

在现代设计工作中&#xff0c;合适的作图工具能极大地提高工作效率。对于设计师、学生或是爱好者来说&#xff0c;免费的作图软件无疑是一个经济实惠的选择。本文将为大家介绍 6 款免费且功能强大的作图软件&#xff0c;其中包括国内备受欢迎的免费作图软件以及 5 款优秀的国外…

多态,匿名内部类(lambda表达式),集合

多态(polymorphism) 一个演员扮演多个不同角色。可以减少if语句的使用。 概念 具有接口或者继承关系 A extends B A implement C 类型一致&#xff08;IEat&#xff09; 民间说法&#xff1a;父类的引用指向不同的子类对象(不同时刻) 产生不同结果 调用相同方法&#x…

学历不会改变命运但知识一定可以改变命运

一、知识与学历的区别 首先&#xff0c;我们需要区分“知识”与“学历”。学历通常是指一个人通过正规教育体系获得的证书或学位&#xff0c;而知识则是更为宽泛的概念&#xff0c;它包括了一个人通过各种途径获得的信息、技能和理解。学历可能只是知识的一部分&#xff0c;而…

自然语言处理系列五十二》文本分类算法》BERT模型算法原理及文本分类

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列五十二文本分类算法》BERT模型算法原理及文本分…

day7 测试知识积累

1.有一个班级表,里面有学号,姓名,学科,分数。找到语文学科分数最高的前10位的姓名(SQL) select 姓名 from 班级表 where 学科=语文 order by 分数 DESC limit 10; 2.有一张年级表,有班级,年级,学生姓名,找到这10名同学所在的班级(SQL) select class from 年级表 wher…

《python语言程序设计》第8章第12题生物信息:找出基因,生物学家使用字母A C T和G构成字符2串建模一个基因组(上)

草稿一、用单一方法遍历文本 9.1代码 genome_text TTATGTTTTAAGGATGGGGCGTTAGTTdef div_word(word_to_judge):len_num len(word_to_judge)save_word ""if len_num % 3 0:print("This word is valid")if save_word.find("ATG") "ATG&qu…

SpringBoot链路追踪②:如何集成?

首先下载Zipkin的jar包&#xff1a;Central Repository: io/zipkin/zipkin-server (maven.org) 根据自己的项目版本。我的版本分别是&#xff1a; <spring-boot.version>2.7.18</spring-boot.version> <spring-cloud.version>2021.0.8</spring-cloud.ve…

Spring理论知识(Ⅳ)——Spring Instrumentation模块

Spring的组成 Spring由20个核心依赖组成&#xff0c;这20个核心依赖可以分为6个核心模块 Spring Instrumentation模块介绍 总的来说&#xff0c;Spring Instrumentation提供了类植入&#xff08;Instrumentation&#xff09;支持和类加载器的实现&#xff0c;可以在特定…

解决报错【ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。】

1、问题发生 用pip安装时出现报错【ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。: c:\\programdata\\anaconda3\\lib\\site-packages\\__pycache__\\typing_extensions.cpython-39.pyc Consider using the --user option or check the perm…

多媒体信息共享|基于SprinBoot+vue的多媒体信息共享平台(源码+数据库+文档)

多媒体信息共享平台 目录 基于SprinBootvue的多媒体信息共享平台 一、前言 二、系统设计 三、系统功能设计 系统前台功能模块 后台模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌…

软考计算机软件基础知识总结

目录 前言 计算机软件概述 操作系统 数据库 文件系统 网络协议 中间件 软件构件 应用软件 最后 前言 早期的计算机软件和计算机程序 (Computer Program) 的概念几乎不加区别&#xff0c;后来计算机 软件的概念在计算机程序的基础上得到了延伸。计算机软件是指计算机系…

基于HybridCLR做的一个FlyBird Demo

周末学习了下HybridCLR的原理和用法做了个FlyBrid小demo。记录一下 官网里写的原理&#xff1a; 对于这个我的理解是&#xff1a; Unity引擎的代码使用还是AOT方式。对于项目业务这块打成多个程序集。运行时使用了解释器&#xff0c;解释执行。从而完成热更新。 一。环境安装…

MySQL5.6迁移到DM8

注意&#xff1a; MySQL 5.7 与 MySQL 8.0 的语法有所区别&#xff0c;本文档是将MySQL5.6迁移到DM8。 迁移前准备 源库 数据库信息 统计源端业务库要迁移的数据量、字符编码、归档保留等信息。 内容 说明 备注 数据库架构 单机 节点数 1 数据库版本 MySQL 5.6…

OpenGL/GLUT实践:实现反弹运动的三角形动画与键盘控制(电子科技大学信软图形与动画Ⅱ实验)

源码见GitHub&#xff1a;A-UESTCer-s-Code 文章目录 1 运行效果2 实验过程2.1 环境配置2.2 绘制三角形2.2.1 渲染函数2.2.2 主函数2.2.3 运行结果 2.3 调整窗口大小2.4 简单动画与按键控制2.4.1 简单旋转2.4.2 键盘控制 2.5 窗口反弹动画2.5.1 处理窗口大小变化2.5.2 渲染函数…

【Redis】缓存(下)

经过缓存这篇文章的概述&#xff0c;已经对缓存有了初步的了解和认知。在本篇文章中&#xff0c;主要是通过代码来实现缓存的应用&#xff0c;以及在使用缓存过程中出现的经典问题。 简单应用 需求&#xff1a;根据菜品id来查询缓存 流程&#xff1a;① 从缓存中查询&#x…

『功能项目』怪物的信息显示【15】

本章项目成果展示 我们打开上一篇14怪物反击主角复活的项目&#xff0c; 本章要做的事情是当主角进入怪物的攻击范围之内时显示怪物的血量信息 在Canvas创建一个空物体 将空物体GameObject钉到视角上方 重命名为KingInfoUI 在子级创建一个Image 在资源文件夹下创建一个空文件命…