Java 8 Lambda表达式:基本语法及在集合中的应用

目录

Lambda表达式的基本语法

lambda表达式在集合中的应用


Lambda表达式的基本语法

(参数列表) -> { 函数体 }

其中:

  • 参数列表:包含Lambda表达式的参数。如果参数只有一个,则括号可以省略。如果参数没有,则必须保留空括号。
  • ->:Lambda操作符,用于分隔参数列表和函数体。
  • 函数体:包含Lambda表达式要执行的代码。

lambda表达式在集合中的应用

与Stream API的结合使得集合操作变得更加简洁和函数式。以下是一些lambda表达式在集合中的常见应用:

1. 过滤元素(Filtering):使用filter方法,可以根据某个条件过滤集合中的元素。

List<String> strings = Arrays.asList("Apple", "Banana", "Cherry", "Date");  
List<String> filteredStrings = strings.stream()  .filter(s -> s.startsWith("A"))  .collect(Collectors.toList());  
// filteredStrings 现在包含 "Apple" 和 "Apple"

2. 映射元素(Mapping):使用map方法,可以将集合中的元素转换成另一种形式。

List<String> strings = Arrays.asList("1", "2", "3");  
List<Integer> numbers = strings.stream()  .map(Integer::parseInt)  //将每个字符串转换为整数.collect(Collectors.toList());  
// numbers 现在包含 1, 2, 3

3. 排序元素(Sorting):使用sorted方法,可以对集合中的元素进行排序。

List<String> strings = Arrays.asList("Banana", "Apple", "Cherry");  
List<String> sortedStrings = strings.stream()  .sorted()  .collect(Collectors.toList());  
// sortedStrings 现在按字母顺序排序

4. 聚合操作(Aggregation):使用reduce方法,可以对集合中的元素进行聚合操作,如求和、求最大值等。

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);  
Integer sum = numbers.stream()  .reduce(0, Integer::sum);  
// sum 现在是 15

5. 收集到不同的集合类型(Collecting to Different Types):使用collect方法,可以将流中的元素收集到不同的集合类型中。

List<String> strings = Arrays.asList("Apple", "Banana", "Cherry");  
Set<String> uniqueStrings = strings.stream()  .collect(Collectors.toSet());  
// uniqueStrings 现在包含唯一的字符串

6. 查找元素(Finding Elements):使用findAny或findFirst方法,可以查找流中的元素。

List<String> strings = Arrays.asList("Apple", "Banana", "Cherry");  
Optional<String> firstString = strings.stream()  .findFirst();  
// firstString 现在包含 "Apple"

7. 去除重复元素(Removing Duplicates):使用distinct方法,可以去除流中的重复元素。

List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 4, 4, 5);  
List<Integer> uniqueNumbers = numbers.stream()  .distinct()  .collect(Collectors.toList());  
// uniqueNumbers 现在包含唯一的数字

Lambda表达式和Stream API的结合使得集合操作更加声明式、简洁和易于理解。通过使用这些高级功能,你可以更加有效地处理集合数据,减少模板代码,并写出更加清晰和可维护的代码。

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

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

相关文章

HarmonyOS卡片生命周期管理

卡片生命周期管理 创建ArkTS卡片&#xff0c;需实现FormExtensionAbility生命周期接口。 在EntryFormAbility.ts中&#xff0c;导入相关模块。 import formInfo from ohos.app.form.formInfo; import formBindingData from ohos.app.form.formBindingData; import FormExtensi…

【React源码 - 调度任务循环EventLoop】

我们知道在React中有4个核心包、2个关键循环。而React正是在这4个核心包中运行&#xff0c;从输入到输出渲染到web端&#xff0c;主要流程可简单分为一下4步&#xff1a;如下图&#xff0c;本文主要是介绍两大循环中的任务调度循环。 4个核心包&#xff1a; react&#xff1a;…

4核8G服务器多少钱?腾讯云和阿里云哪家便宜?

4核8G云服务器多少钱一年&#xff1f;阿里云ECS服务器u1价格955.58元一年&#xff0c;腾讯云轻量4核8G12M带宽价格是646元15个月&#xff0c;阿腾云atengyun.com整理4核8G云服务器价格表&#xff0c;包括一年费用和1个月收费明细&#xff1a; 云服务器4核8G配置收费价格 阿里…

SpringBoot中 Mybatis 的xml映射文件配置

目录 1.依赖 2.示例代码 2.1不带resultMap标签示例 2.1带resultMap标签示例 3.resultMap标签不加的情况说明 1.依赖 在pom.xml文件中引入依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter-t…

网站的安全防护需要注意哪些问题?有什么方法可以加固网站的防护

网站的安全防护&#xff0c;是一项复杂性、多方面的系统工程。现如今网络安全风险的增加&#xff0c;使得上至国家部门机关&#xff0c;小到个人博客&#xff0c;都有可能遭受网络安全问题。说到网络安全问题&#xff0c;比如&#xff1a;竞争最为激烈的游戏行业&#xff0c;从…

MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)

文章目录 一、InnoDB引擎逻辑储存结构二、架构——内存结构三、架构——磁盘结构四、架构——后台线程五、事务原理持久性&#xff1a;redo log。重做日志原子性&#xff1a;undo log。回滚日志 六、MVCC基本概念七、MVCC实现原理八、undo log日志 回滚日志&#xff0c;版本链九…

【每日前端面经】2023-02-27

题目来源: 牛客 CSS盒模型 CSS中的盒子包括margin|border|padding|content四个部分&#xff0c;对于标准盒子模型&#xff08;content-box&#xff09;的widthcontent&#xff0c;但是对于IE盒子模型&#xff08;border-box&#xff09;的widthcontentborder2padding2 CSS选…

C# 中的装箱(boxing)和拆箱(unboxing)

在 C# 中&#xff0c;装箱&#xff08;boxing&#xff09;和拆箱&#xff08;unboxing&#xff09;是用来在值类型&#xff08;如 int、double 等&#xff09;和引用类型&#xff08;如 object&#xff09;之间进行转换的过程。 装箱&#xff08;Boxing&#xff09;&#xff1…

ROS 图像预处理

为了使机械臂从复杂的场景中准确地识别出目标物体&#xff0c;首先要对机械臂相机采集的图像信息进行系列的预处理操作&#xff0c;图像预处理的目的就是为了方便提取采集图像的特征点信息。 1、图像灰度化 图像灰度化处理是一种将彩色图像转换为灰度图像的过程&#xff0c;目…

shell中正则表达式讲解

1. 概念 在进行程序设计的过程中&#xff0c;用户会不可避免地遇到处理某些文本的情况。有的 时候&#xff0c;用户还需要查找符合某些比较复杂规则的字符串。对于这些情况&#xff0c;如果 单纯依靠程序设计语言本身&#xff0c;则往往会使得用户通过复杂的代码来实现。但 是&…

在linux上不依赖于Nignx等服务器部署ASP.NET Core 7.0 WebAPI

笔者近期需要部署一款基于B/S架构的后端程序在linux的Debian发行版上&#xff0c;本文章以本次部署遇到的问题为线索&#xff0c;总结如何在Debian上部署ASP.NET Core7.0WebAPI应用程序。 在linux上不依赖于Nignx等服务器部署ASP.NET Core 7.0 WebAPI 1.先决条件2.应用发布3.部…

大语言模型LLM微调技术深度解析:Fine-tuning、Adapter-Tuning与Prompt Tuning的作用机制、流程及实践应用(LLM系列08)

文章目录 大语言模型LLM微调技术深度解析&#xff1a;Fine-tuning、Adapter-Tuning与Prompt Tuning的作用机制、流程及实践应用&#xff08;LLM系列08&#xff09;Fine-tuningAdapter-TuningPrompt Tuning策略对比与应用场景 大语言模型LLM微调技术深度解析&#xff1a;Fine-tu…

【vue】computed 、 watch、method 的区别

三个关键字【惰性】【缓存】【异步】 计算属性 computed 计算属性返回的值不属于 data&#xff0c;但是基于data声明的值会根据它们所依赖的数据的变化而自动重新计算惰性计算 初始化不会执行&#xff0c;只有在第一次访问时才会被计算render 函数执行时&#xff0c;会触发计算…

Gemma

Gemma 1.使用2.RAG3.LoRA3.1LoRA分类任务3.2LoRA中文建模任务 1.使用 首先是去HF下载模型&#xff0c;但一直下载不了&#xff0c;所以去了HF镜像网站&#xff0c;下载gemma需要HF的Token&#xff0c;按照步骤就可以下载。代码主要是Kaggle论坛里面的分享内容。 huggingface-…

3D可视化项目,选择unity3D还是three.js,是时候挑明了。

2023-08-10 23:07贝格前端工场 Hi&#xff0c;我是贝格前端工场&#xff0c;在开发3D可视化项目中&#xff0c;是选择U3D还是three,js时&#xff0c;很多老铁非常的迷茫&#xff0c;本文给老铁们讲清楚该如何选择&#xff0c;欢迎点赞评论分享转发。 一、Unity3D和three.js简…

RTCA DO-178C 机载系统和设备认证中的软件注意事项-附录 B

ANNEX B 附录 B 缩略语和术语表 ACRONYMS AND GLOSSARY OF TERMS 缩写 Acronym 释义 Meaning 译文 Translate ARP Aerospace Recommended Practice 航空航天推荐做法 ATM Air Traffic Management 空中交通管理 CAST Certification Authorities Software Team 认证机…

小程序里.vue界面中传值的两种方式

1.跳转携带参数后通过生命周期取值 1.1跳转 function juMp(){let arr JSON.stringify(specs.specs_data)wx.navigateTo({url:/pages/specs/specs?sku arr})}1.2取值 import {onLoad} from dcloudio/uni-apponLoad((event)>{let Arr JSON.parse(event.sku)})2.通过监听器…

String类-equals和==的区别-遍历-SubString()-StringBuilder-StringJoiner-打乱字符串

概述 String 类代表字符串&#xff0c;Java 程序中的所有字符串文字&#xff08;例如“abc”&#xff09;都被实现为此类的实例。也就是说&#xff0c;Java 程序中所有的双引号字符串&#xff0c;都是 String 类的对象。String 类在 java.lang 包下&#xff0c;所以使用的时候…

jquery实现select2插件鼠标点击任意地方时默认选中该输入框内的值

jquery实现select2插件鼠标点击任意地方时默认选中该输入框内的值 最近发现一个问题&#xff0c;插件select2中的select2可输入可选择的下拉框&#xff0c;在你输入值后鼠标点击别的地方&#xff0c;输入框内的值会被清空&#xff0c;特此记录一下这里的优化&#xff0c;这里修…

[Mac软件]Adobe Substance 3D Stager 2.1.4 3D场景搭建工具

应用介绍 Adobe Substance 3D Stager&#xff0c;您设备齐全的虚拟工作室。在这个直观的舞台工具中构建和组装 3D 场景。设置资产、材质、灯光和相机。导出和共享媒体&#xff0c;从图像到 Web 和 AR 体验。 处理您的最终图像 Substance 3D Stager 可让您在上下文中做出创造性…