自用 Java 学习 IO流前总结(Stream流)

Java8新特性Stream流的概念和使用【详解】 🎉博客首页:痛而不言笑而不语的浅伤 📢欢迎关注🥳点赞 👍 收藏 ⭐留言 📝 欢迎讨论! 🔮本文由痛而不言笑而不语的浅伤原创,优快云首发! 🌋系列专栏:《JavaSE系列详解》 🧿首发时间:2022年5月24日 ❤:热爱Java学习,期待一起交流! 🙏🏻作者水平有限,如果发现错误,求告知,多谢! 🥰有问题可以私信交流!!! 目录 引言 Stream流的概念 为什么要使用Stream流? Stream的两个基础的特征: Stream流的获取 通过Collection集合获取. 阅读详情

可变参数

目录

可变参数

Stream流

Stream流练习


可变参数用在方法的形式参数的位置,它可以看做是一个数组,可以接收多个实际参数。

public static void main(String[] args){
    int sum1=getSum(3,4,5); //求3,4,5的和
    
    int sum2=getSum(1,2,3,4,5,6); //求1,2,3,4,5,65的和
    
    int[] array={1,2,3,4,5,6};
    int sum2=getSum(array); //求1,2,3,4,5,65的和
}

//求任意几个数的和
//int... array : 可变参数,可以接收多个int类型的值
public static int getSum(int... array){
    int sum=0;
    for(int i=0;i<array.length;i++){
        sum+=array[i];
    }
    return sum; 
}

LIst、Set、Map接口都提供了一个方法of,可以生成一个不可变的集合,同时添加任意多个元素

List<String> list2 = List.of("hello", "world", "java");
System.out.println(list2);

Set<String> set = Set.of("hello", "java", "world");
System.out.println(set);

Map<String, Integer> map = Map.of("张三", 20, "李四", 30, "王五", 40);
System.out.println(map);

Stream流

JDK8提供了Stream流用来对集合或者数组进行操作,使用Stream流需要经过下面的几个步骤

1.获取流  (创建流水线)

1.单列集合获取流
    Stream  strem=集合对象.stream();
    
2.双列集合获取流
    //键集,获取流
    Stream keyStream=map.keySet().stream();
    
    //值集,获取流
    Stream valueStream=map.values().stream();
    
    //键值对集,获取流
    Stream entryStream=map.entrySet().stream(); 

3.数组获取流、同一个类型的多个数据获取流
    Integer[] array={1,2,3,4,5};
    //数组获取流
    Stream arrayStream1=Stream.of(array);
    Stream arrayStream2=Stream.of(1,2,3,4,5);
    
    //数组获取流
    Stream stream = Arrays.stream(数组);


2.中间操作 (流水线操作环节)

fliter: 对元素进行过滤
limit: 截取前面n个元素
skip: 跳过前面n个元素
distinct: 去除重复元素

map: 对流中的元素进行转换

concat: 把两个流合并为1个流
        Stream<Integer> stream1=List.of(1,2,3,4).stream();
        Stream<Integer> stream2=List.of(5,6,7,8).stream();

    举例: 把stream1和stream2合并为1个流
        Stream stream3=Stream.concat(stream1,stram2)


3.终结操作 (流水线上的最后环节)

forEach: 遍历元素
count:  统计个数

collect: 收集剩余的元素到新的集合
    toList: 把元素放到List集合中
    toSet:  把元素放到Set集合中
    toMap:  把元素放到Map集合
        需要给定2个Lambda表达式,分别表示键和值

Stream流练习

需求:
    1.创建一个集合,存储10个学生对象
    2.保留年龄大于20的学生
    3.跳过前面2个
    4.截取前面4个
    5.把剩下的所有学生的年龄加10岁
    6.测试下面终极方法的使用
       1)遍历输出所有剩余元素的姓名和年龄
       2)把所有学生对象收集到List集合中
       3)把所有学生对象收集到Set集合中
       4)把所有学生对象收集到Map集合中,键:姓名、值:年龄

ArrayList<Student> list=new ArrayList<>();
list.add(new Student("张三",20));
list.add(new Student("李四",18));
list.add(new Student("王五",19));
list.add(new Student("赵六",25));
list.add(new Student("前妻",27));
list.add(new Student("王炸",28));
list.add(new Student("小王",26));
list.add(new Student("大王",24));
list.add(new Student("蘑菇头",23));
list.add(new Student("妹爷",29));
list.add(new Student("老王",30));
list.add(new Student("老李",22)); 

//演示Stream流的过滤、跳过、截取、转换、遍历功能
list.stream()
    .filter(s -> s.getAge() > 20)  //过滤年龄>20的学生
    .skip(2) //跳过前面2个
    .limit(4) //截取前面4个
    .map(s -> new Student(s.getName(), s.getAge() + 10))
    .forEach(s -> System.out.println(s));

//由于终结方法只能调用一个,可以尝试调用一个,注释掉再调用下一个
	//.collect(Collectors.toList());  //收集成List集合
    //.collect(Collectors.toSet());	//收集成Set集合
    //.collect(Collectors.toMap(s -> s.getName(), s -> s.getAge()));

51单片机超声波测距数码管显示并报警(Proteus 仿真) HC-SR04超声波 实物图 使用方法 1、给TRIG端口至少10us 的高电平信号 2、模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回 3、有信号返回,ECHO端口会输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间 计算的话这里就不考虑温度的影响直接用声速340m/s Proteus仿真 HC-SR04可以用Proteus中的SRF04代替 下面附上代码 ... 阅读详情

相关推荐

PLL锁相环基础知识(一)

本文介绍了锁相环(PLL)的核心组件及其工作原理,重点阐述了压控振荡器(VCO)的结构与调谐机制。VCO作为PLL的关键部分,通过变容二极管实现频率调谐,但易受温度、电压等因素影响稳定性。文章详细讲解了VCO的谐振电路原理、硅基集成方案,以及通过分频器和调制器实现的频率控制技术。特别分析了整数型和分数型N分频器的差异,指出高阶德尔塔-西格玛调制器可有效降低分数杂散。文章还探讨了预分频器的应用及其对频率分辨率的影响,揭示了PLL通过反馈环路实现频率锁定的基本原理。

weixin_49761275的博客 3037

Stream流的使用

流是从支持数据处理操作的源生成的元素序列。源可以是数组、文件、集合、函数。流的目的不在于保存数据,而是计算。

qq_24889005的博客 2882

DPARSF高级版 vs 基础版怎么选?没有T1数据也能做fMRI分析吗?

本文深度对比了DPARSF高级版与基础版在fMRI分析中的核心差异与适用场景,特别针对无T1数据的情况提供了实战解决方案。高级版依赖T1像实现高精度配准,适合需要精确解剖定位的研究;基础版则无需T1数据,适用于功能连接等相对空间要求不高的分析。文章还提供了版本选择决策树和常见问题解决方案,帮助研究者根据实际需求做出最优选择。

weixin_42526087的博客 132

函数式编程——Stream流

java8的Stream使用的是函数式编程模式,如同它的名字一样,它可以被用来对集合或者数组进行链状流式操作。可以方便的让我们的对集合或者数组操作;一定需要有终结操作 数组:Arrays.stream(数组)或者使用Stream.of创建 双列集合:转换成单列集合后再创建 2.中间操作 filter:可以对流中的元素进行过滤,符合条件的才保留; map:将流中的元素进行计算或者转换 distinct :可以去除流中的重复元素 依赖的式object的equals方法来判断是否是相

逾越的博客 1万+

华为Atlas 300I推理卡驱动安装全攻略:从环境检查到常见问题解决

本文提供了华为Atlas 300I推理卡驱动安装的完整实战指南。从安装前的系统环境检查、内核版本匹配,到详细的二进制.run文件安装步骤、源码编译及高级定制化部署,涵盖了驱动安装的全流程。文章重点解析了安装过程中的关键决策、常见问题排查与解决方案,并针对生产环境的多卡配置、性能调优及安全加固给出了专业建议,旨在帮助用户高效、稳定地完成AI推理加速卡的部署。

swift5iosmith的博客 628

盘点军工行业软件研发的那些常用GJB标准

GJB5000、2786、438、141、102、8114等...

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 9453

复习(基础8)Stream流

​ 在Java 8中,得益于Lambda所带来的函数式编程, 引入了一个全新的Stream流概念。 目的:用于简化集合和数组操作的API。 1.2、Stream流思想: Stream流式思想的核心: 1.先得到集合或者数组的Stream流(就是一根传送带) 2.把元素放上去 3.然后就用这个Stream流简化的API来方便的操作元素。 ​

qq_46061535的博客 2172

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 587

java1.8新特性之stream流式算法

在Java1.8之前还没有stream流式算法的时候,我们要是在一个放有多个User对象的list集合中,将每个User对象的主键ID取出,组合成一个新的集合,首先想到的肯定是遍历,如下: List<Long> userIdList = new ArrayList<>(); for (User user: list) { userIdList.add(user.id); } 或者在1.8有了lambda表达式以后,我们会这样写: List<Long> user

c_hmnzs的博客 781

科研绘图系列:R语言绘制极坐标饼图(pie plot)

科研绘图系列:R语言极坐标饼图(pie plot)

专注生信领域 1053

[AI8051U入门第一步]环境安装和按键控制流水灯

本文介绍了AI8051U单片机的开发环境搭建及GPIO应用。主要内容包括:1)通过ISP软件完成Keil开发环境配置;2)AI8051U特性介绍,包括32位8051内核、浮点运算单元及丰富外设;3)GPIO输入输出模式解析,并附流水灯控制代码;4)提供完整的系统初始化、延时函数及LED控制代码实现。文章配套资源包含完整工程代码,适用于智能硬件及物联网开发。

sinat_58149788的博客 671

Arrays.stream(),flatmap

Arrays.stream()的方法可以接受 一个数组并产生一个流 flatmap方法让你把一个流中的每个值都换成另一个流,然后把所有的流连接 起来成为一个流。

weixin_44942769的博客 1358

Python基础语法与最佳实践【python基础篇】

本文全面介绍了Python基础语法与最佳实践,涵盖变量与数据类型、控制流、函数、模块与包等核心概念。通过实际代码示例展示了条件语句、循环结构、函数定义及模块导入的基本用法。在最佳实践部分,重点讲解了PEP 8代码风格规范、异常处理技巧、列表推导式、上下文管理器、文档字符串编写以及enumerate和zip的高效使用。这些内容既适合Python初学者掌握基础语法,也能帮助有经验的开发者编写更规范、高效、可维护的代码。文章强调遵循Python官方推荐实践,通过合理运用语言特性提升代码质量。

博客 1977

【Java笔记】Stream流 超详解

如果巅峰留不住,那就进厂包吃住。如果志同道也合,那就流水线回合。

小新的博客 6362

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java笔记(Stream、File、IO流、字符集、编码解码)

Java笔记(Stream、File、IO流、字符集、编码解码)

LLM | Agent | RAG | Java 2478

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

新手小白学JAVA IO流 File 字节流 字符流

IO简介 1 流Stream 在学习IO流之前,我们首先需要学习的概念就是Stream流 为了方便理解,我们可以把数据的读写操作抽象成数据在"管道"中流动,但需注意: 1.流只能单方向流动 2.输入流用来读取 → in 3.输出流用来写出 → out 4.数据只能从头到尾顺序的读写一次 所以以程序的角度来思考,In/out 相对于程序而言的输入(读取)/输出(写出)的过程. 2 IO流的继承结构 在java中,根据处理的数据单位不同,可以把流分为字节流和字符流 字节流 : 针对二进制文件 字符流 : 针对

程序媛泡泡的博客 7万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【Java】Stream流,方法引用,异常,File类

做自己,因为没有人能做的比你更好

Answer的博客 1508

Stream流操作

IO: output: input流:像水流一样传输数据。

pengxiang1998的博客 1742

还看不懂同事的代码?超强的 Stream 流操作姿势还不学习一下

Java 8 新特性系列文章索引。 Jdk14都要出了,还不能使用 Optional优雅的处理空指针? Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下? 还看不懂同事的代码?Lambda 表达式、函数接口了解一下 前言 我们都知道 Lambda 和 Stream 是 Java 8 的两大亮点功能,在前面的文章里已经介绍过 Lambda 相关知识,这次介绍下 Java 8 的 S...

未读代码 4161

Java中的Stream流详解

文章目录1、Stream API概述2、Stream 的操作三个步骤3、创建Stream的方式4、中间操作筛选与切片映射排序5、终止操作查找与匹配归约收集Collectors 中的方法 1、Stream API概述 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。 使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询,也可以使用 Stream API 来并行执行操作。 简而言之,Stre

weixin_45082647的博客 4826

Java之Stream流初识

对于没有深入学习Java的我来说,第一次看到以后就会和IO流联想在一起,但事实并非如此,下面我们一一道来! 1.Stream流引入 Stream流完全不是I/O流,按照流水线处理方式来考虑代码中的思想。 JDK1.8 之后,我们拥有了Lambda表达式,让代码的中心偏向解决实际问题,直到重点,可以提高效率。 Stream流中使用了大量Lambda表达式,利用Lambda操作方式,提供开发效率...

weixin_44009147的博客 693

Java 流(Stream)、文件(File)和IO——《跟老吕学Java》

Java的流、文件和IO库为Java应用程序提供了强大且灵活的数据处理能力。无论是处理文本数据、二进制数据还是网络数据,Java都能够提供合适的工具和API来满足需求。同时,随着Java的发展,NIO库的引入进一步提高了Java在IO处理方面的性能和效率。因此,熟练掌握Java的流、文件和IO库是Java开发人员必须掌握的基本技能之一。

Python老吕的博客 1142

stream流学习

stream流学习,对stream进行梳理,掌握使用stream流的3个步骤。😊😊😊还有一些细节问题,等到实际开发的时候去解决。“加油!!!”😊😊😊。

lenard-lhz的博客 1291

【Java基础】Stream流、文件File相关操作,IO的含义与运用

Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。

拔高、提升、创新! 1177

华杉研发九学习日记21 Stream流 IO流

IO: input(输入),output(输出)。无论输入还是输出都有源头和目的地。对于Java来说,输入指的是从哪到哪呢?输出指的是从哪到哪呢?Java里的输入:把数据从文件(或者网络)读取到程序里,【读取文件】Java里的输出:把程序里的数据写入到文件(或者网络)中。【写入文件】

小孤鸡的学习之路 551

Java Stream流、 IO学习笔记

Stream流、IO的学习笔记

qq_49278026的博客 820
上一篇: 自用 Java 学习 IO流前总结(集合)
下一篇: 自用 Java 学习 IO流前总结(IO流)
Ke_youmi
博客等级 码龄5年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值