可变参数和Strem流

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx 立即下载

可变参数

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

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<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.获取流  (创建流水线)
2.中间操作 (流水线操作环节)
3.终结操作 (流水线上的最后环节)

获取流

1.单列集合获取流
	Stream  stream = 集合对象.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流,可以继续调用其他方法。

fliter: 对元素进行过滤
limit: 截取前面n个元素
skip: 跳过前面n个元素
sorted: 对元素进行排序,如果排序规则不符合自己的要求可以自定义比较器
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) 

终结操作

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

Stream流练习

按要求完成代码

    1.创建一个Student类,有name和age两个属性    
    2.创建一个ArrayList集合,往集合中添加10个Student对象
    3.使用Stream流过滤集合中年龄>20的元素
    4.跳过前面的2个元素
    5.截取前面的4个元素
    6.尝试对流中的元素,进行以下终结操作
        1)把Stream流中的元素打印
        2)把Stream流中的元素收集成List集合
        3)把Stream流中的元素收集成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 -> s.getName()) //把Student元素转换为String姓名
    .forEach(s -> System.out.println(s)); //遍历输出

System.out.println("-----------------");

//演示Stream流的过滤、跳过、截取、最后收集成List的功能
List<Student> list1 = list.stream()
                .filter(s -> s.getAge() > 20)  //过滤年龄>20的学生
                .skip(2) //跳过前面2个
                .limit(4) //截取前面4个
                .collect(Collectors.toList()); //把剩余的元素收集成List集合
System.out.println(list1);

System.out.println("-----------------");
//演示Stream流的过滤、跳过、截取、最后收集成Map的功能
Map<String,Integer> map=list.stream()
    .filter(s -> s.getAge() > 20)  //过滤年龄>20的学生
    .skip(2) //跳过前面2个
    .limit(4) //截取前面4个
    .collect(Collectors.toMap(
        s -> s.getName(),
        s -> s.getAge())
     ); //把剩余的元素收集为Map集合
System.out.println(map); 

VCSA 6.7证书更新全流程指南:从故障诊断到完整替换 本文详细介绍了VCSA 6.7证书更新的全流程,包括故障诊断、证书替换操作步骤及常见问题解决方案。通过使用官方脚本和证书管理器,帮助管理员快速解决证书过期问题,确保vCenter系统的稳定运行。特别强调了STS证书修复和全量证书重置的关键步骤,适用于vcsa6.7环境下的证书管理需求。 阅读详情

相关推荐

2021秋招IC验证面经-ARM中国/中科芯/飞腾/地平线/中兴

中科芯 (央企福利待遇好,但是百分百不解决户口,适合当地人进去躺平。) 现场面试,三个面试官,时间大约40min 首先介绍一下自己,介绍一下项目。所做项目用到了FIFO吗,深度是多少,位宽是多少,仲裁算法是什么? 验证环境中的reference model是自己写的还是本身就有的,仲裁怎么在参考模型中实现,参考模型怎么获取寄存器的值? 怎么配置RTL寄存器,通过平台的寄存器模型进行寄存器配置,寄存器模型里边的方法,写一个寄存器或读一个寄存器怎么实现? 寄存器如何实现前门访问和后门访问,后门访问时

weixin_48014653的博客 6318

Java 8 Stream(2)-原理解析

文章目录1. Strem 组件结构1.1 操作分类1.22. Stream 实现原理2.1 Spliterator 可分割迭代器2.2 流处理流程 1. Strem 组件结构 1.1 操作分类 1.2 2. Stream 实现原理 2.1 Spliterator 可分割迭代器 2.2 流处理流程

谈谈1974 1522

网络摄像头(IPC)介绍:类型、供电、镜头、夜视等

IPC(Internet Protocol Camera,网络摄像头),它是一种由传统摄像机与网络技术结合所产生的新一代摄像机。它可以将视频、音频、报警及控制信号通过网络传输,接受网络监控主机(NVR或监控管理平台)的管理。IPC可与路由器、交换机、NVR等设备组建成为监控系统。

学无止境,Fighting! 1万+

【C++】stringstream类 最全超详细解析(什么是stringstream? stringstrem有哪些作用? 如何在算法中应用?)

想必大家在做 LeetCode 算法题的时候会经常看到有使用 stringstream 类 处理字符串,由于自己对这个类不是很了解,查了资料在这里记录一下。 所以本文通过收集资料将其进行总结,主要介绍如何使用 stringstream 处理在算法练习或竞赛中遇到的输入输出问题。

weixin_45031801的博客 5万+

比较几款国际主流的电子元器件及物料清单管理软件 – 工具汇总

Arenasolution 老牌的基于云计算物料清单管理软件,bom.com就是他们家的,10天免费试用,功能被分成4个不同的产品, 和传统ERP功能上有重叠,偏向于物流生产规划,一定程度可以取代ERP的生产规划模块,平均价格70美元/月/席位。网页客户端,不支持离线   SiliconExpert 曾经的老牌物料清单管理软件,后被Arrow 收购,14天免费试用,功能被分成4个不同的产品

u012062784的专栏 7235

Python爬虫技术:使用Playwright和Twitter API v2高效获取Twitter/X数据完全教程

遵守规则:始终遵循Twitter的使用条款和速率限制错误处理:实现完善的错误处理和重试机制数据质量:进行数据清洗和验证性能优化:使用异步处理和合理的延迟设置可维护性:模块化代码,便于维护和扩展。

2201_76125261的博客 671

strem流使用记录

stream使用记录:集合去重,List转String,String 转List

weixin_41765715的博客 247

CDD数据库文件制作(二)——DTC配置

1.DTC库 2.新建DTC DTC相关介绍:https://blog.youkuaiyun.com/LOVE135149/article/details/122565443 ① 选择DTC数据库 ② 点击新建DTC ③ DTC参数编辑 3.将DTC库中的DTC加载到Variant中 找到Fault Memory的DTC Table,鼠标放在DTC Table区域,右键点击选择Copy … Reference from Available DTCs…,即可将DTC库中的故障码加载至Variant中。 虽然选择Co

LOVE135149的博客 1万+

java strem流

stree流

qq_32526375的博客 452

多物理场光学仿真软件:COMSOL_(10).激光器与谐振腔仿真

定义Nd:YAG晶体的材料属性% 折射率% 吸收系数% 发射截面% 定义光泵浦源% 泵浦光波长% 泵浦光强度% 泵浦光方向% 定义全反射镜% 选择边界% 完美电导体边界条件% 定义部分反射镜% 选择边界% 反射率边界条件% 反射率通过 COMSOL 对激光器和光学谐振腔进行仿真,可以全面评估激光器的性能,包括输出功率、效率、稳定性和模式选择等。这些仿真结果为激光器的设计和优化提供了重要的参考依据。

kkchenjj的博客 1647

上海计算机学会2020年5月月赛C++乙组T2经济普查

中国正在以前所未有的力度推进脱贫攻坚,国家计划在2020年使得在现行标准下的贫困人口实现全面脱贫,为此,需要对居民的经济状况进行普查。 题目描述 给定一个正整数n,表示人口数量。一开始,每个居民拥有的财产记为a1​,a2​,⋯,an​,财产可能发生两种变化: 一种来源于个体,由某个居民的经济活动而产生。在某个时刻,某个居民的财产会直接变成某个数值,可能升高也可能降低。 一种来源于政策,在某个时刻,国家会对财产低于某个标准线全部的居民,实施政策支持,使得他们的财产全部正好到达标准线。 给定这些变

长春高老师编程 904

SpringCloud第九章(消息驱动Strem和RabbitMQ)

1:什么是Strem Spring Cloud Stream是一个构建消息驱动微服务框架。他的作用是屏蔽消息中间件的技术差异,就像jdbc连接不同的数据库一样,我们不直接调用消息中间件,我们通过Strem来使用消息中间来发送消息。通过使用 Spring Cloud Stream,可以有效简化开发人员对消息中间件的使用复杂度,让系统开发人员可以有更多的精力关注于核心业务逻辑的处理。但是目前 Spring Cloud Stream 只支持 RabbitMQ 和 Kafka 的自动化配置。 2:Strem架构

huyiju的博客 1375

Statistics and Machine Learning Toolbox

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

Map HasNap 集合Strem流

HashMap底层是哈希表结构的依赖hashCode方法和equals方法保证键的唯一如果键要存储的是自定义对象,需要重写hashCode和equals方法TreeMap底层是红黑树结构依赖自然排序或者比较器排序,对键进行排序如果键存储的是自定义对象,需要实 现C omparable接口或者在创建TreeMap对象时候给出比较器排序规则。

weixin_43421392的博客 363

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

可变参数与不可变集合;Stream流的生成、中间方法、终结方法以及收集Stream流

可变参数的应用,Stream流的应用

罪域之骨终成王 498

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JAVA_可变参数Stream-File

可变参数: 可变参数:就是形参的个数是可以变化的 格式:修饰符 返回值类型 方法名(数据类型…变量名){} 范例:public static int getSum(int… arr){} 可变参数注意事项:这里的变量其实是一个数组 public class MyVariableParameter2 { public static void main(String[] args) { /* 定义一个方法 求N个数的和 */ int su

qq_42073385的博客 389

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

自己随手写出来了,不在意排版和文章思维的以下都是想到哪里写到哪里. 甚至可能还有错别字.

Ke_youmi的博客 313

Java基础之Stream流,方法引用

Stream 流 使用传统的方式,遍历集合,对集合中的数据进行过滤 public class Demo01List { public static void main(String[] args) { //创建一个List集合,存储姓名 List<String> list = new ArrayList<>(); l...

qq_32719221的博客 392

Java 8 (4/6篇) - Stream API 流操作集合

作用:用来直接访问类或实例已经存在的方法或者构造方法。

HugMua的博客 884

Java8新特性---Stream API

个人理解:Stream API 非常强大! 在Java8之后.对数据的操作非常的方便,操作数据就好像写SQL语句. 使用Stream API 需要了解到一下几点 * Stream API 在流的传输过程中,做一些流水线式的处理,产生一个新流 * Stream自己不会存储元素 * Stream不会改变源对象,返回一个持有结果的新流 * Stream操作是延时执行的 使用Stream API 需要三...

莫提的博客 377

JDK1.8 新特性(二)【Stream 流】

JDK1.8 新特性之 Stream的10种方法

功不唐捐,玉汝于成 733

Flink StremApi实时统计PV UV

flink stream api 实现实时每5分钟统计当天的总pv 、 总uv ,每5分钟、每30分钟、每60分钟统计前5分钟、30分钟、60分钟内数据的 pv 、 uv

qq_37975852的博客 2287

jdk1.8 .strem使用

1.获取某个List中的某个字段,并组成新的List List users = = new ArrayList<>(); (1)获取某个List中的某个字段(id),并组成新的List List userIds = users.stream().map(TookActivityUserVO::getId).collect(Collectors.toList()); (2)循环输出 userIds .forEach(s-> System.out.println(s)); (3).distin

Ls66666Ls的博客 973

Strem流

1.1概述 说到Strem便容易想到I/O Strem,而实际上,谁规定“流”就一定是流呢?在Java8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。 1.2传统集合遍历的弊端 需求:筛选出姓张且名字长度为3的人的名字并打印 List <String> list = new ArryList<> (); list...

weixin_46101397的博客 1798

xstrem

XStream的bug,比如在定义别名中的下划线“_”转换为xml后会变成“__” 比如: XStreamstream=newXStream(); stream.alias("person",Person.class); Stringmessage=stream.toXML(person); 如果person类中有个字段为per_name...

专注Java(全栈)应用开发,求知若渴,虚心若愚,talk is cheap, show me the code. 271

Stream流:生成操作,中间操作,终结操作,收集操作以及它们的常用方法

Stream流作为函数式编程风格的体现,它将这种风格真正的引入到Java当中,我们可以通过直接阅读字面的意思来完美理解代码中的意思而无关逻辑,下面跟着示例一起练习学习,轻松搞定Stream流! 第一步:生成操作 Stream流生成的方式有以下几种,它是后续操作的基石。 Collection体系集合 使用默认方法stream()生成流, default Stream stream() Map体系集合 把Map转成Set集合,间接的生成流 数组 通过Stream接口的静态方法of(T… values)生成流 p

qq_42956993的博客 2601

Java 8 stream的详细用法

一、概述 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。 特点:         1 . 不是...

旅行者 30万+
上一篇: Collection集合体系总结(图片形式)
下一篇: File类、字节流
Figure_TheKeyboard
博客等级 码龄5年 6粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值