Java Lambda 表达式以及对 Lambda 表达式的简化

Java Lambda 表达式以及对 Lambda 表达式的简化

LambdaDemo.java

package com.zhong.lambdademo;import java.util.Arrays;
import java.util.Comparator;public class LambdaDemo {public static void main(String[] args) {Student[] student = new Student[5];student[0] = new Student("小钟", 179.1, 22);student[1] = new Student("小王", 152.1, 21);student[2] = new Student("小张", 199.2, 32);student[3] = new Student("小红", 120.8, 92);student[4] = new Student("小芳", 169.3, 54);// 1.原始排序Arrays.sort(student, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {// return o2.age-o1.age;   降序return o1.getAge() - o2.getAge();}});// lambda 表达式Arrays.sort(student, (o1, o2) -> o2.getAge() - o1.getAge());// 静态方法引用Arrays.sort(student, CompareByData::CompareByAge);// 实例方法引用CompareByData compareByData = new CompareByData();Arrays.sort(student, compareByData::CompareByAge2);for (Student stu : student) {System.out.println(stu);}String[] names = {"body", "angela", "Andy", "deli", "caoCao", "BaBo", "jack", "jk"};// 忽略首字符大小写排序Arrays.sort(names, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {return o1.compareToIgnoreCase(o2);}});// 特定类型方法引用简化Arrays.sort(names, String::compareToIgnoreCase);System.out.println(Arrays.toString(names));// 构造器引用CreateStudent createStudent = new CreateStudent() {@Overridepublic Student Create(String name, Double height, int age) {return new Student(name, height, age);}};Student createStu = createStudent.Create("小钟", 179.1, 22);System.out.println(createStu);// lambda 简化CreateStudent createStudent1 = (name, height, age) -> new Student(name, height, age);Student createStu1 = createStudent1.Create("小王", 152.1, 21);System.out.println(createStu1);// 构造器引用简化CreateStudent createStudent2=  Student::new;Student createStu2 = createStudent2.Create("小红", 120.8, 92);System.out.println(createStu2);}
}interface CreateStudent {Student Create(String name, Double height, int age);
}

CompareByData.java

package com.zhong.lambdademo;public class CompareByData {public static int CompareByAge(Student o1, Student o2) {return o2.getAge() - o1.getAge();}public int CompareByAge2(Student o1, Student o2) {return o2.getAge() - o1.getAge();}
}

Student .java

package com.zhong.lambdademo;public class Student {private String name;private Double height;private int age;public Student() {}public Student(String name, Double height, int age) {this.name = name;this.height = height;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Double getHeight() {return height;}public void setHeight(Double height) {this.height = height;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", height=" + height +", age=" + age +'}';}
}

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

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

相关文章

(15)求两个整数的平均值

文章目录 每日一言题目解题思路代码结语 每日一言 现在&#xff0c;我怕的并不是那艰苦严峻的生活&#xff0c;而是不能再学习和认识我迫切想了解的世界。对我来说&#xff0c;不学习&#xff0c;毋宁死。——罗蒙诺索夫 题目 输入两个整数m和n&#xff0c;写一个函数average…

createvm

New-VM -Name “new 5” -Generation 2 -BootDevice CD -NoVHD Set-VMDvdDrive -VMName TestVM -Path .\WinBuild.iso Set-VMFirmware “Test VM” -EnableSecureBoot Off Start-VM -Name TestVM debug-vm testuefiisov2 -InjectNonMaskableInterrupt -Force Write-Host $MyI…

GrayLog踩坑历险记

背景 GrayLog作为ELK的替代产品&#xff0c;是新生代的日志采集框架。在一个采集节点日志的需求中&#xff0c;因为节点很多&#xff0c;产生的日志也很多&#xff0c;因此尝试了使用GrayLog进行日志的采集。下面记录一下使用GrayLog中遇到的坑和解决方案。 一、部署与启动 …

论软件外包模式与企业信息化建设

企业信息化是企业在发展过程中的推进器&#xff0c;没有也可以勉强存活&#xff0c;但是谈不上加速。软件外包模式就是建造推进器的方法。软件外包模式大体分为以下几类&#xff1a; (1)购买现成的&#xff0c;在上面进行定制开发 代表用友&#xff0c;金蝶厂商&#x…

(十三)Java开发扩展之软件包与安装——JDK和MySQL

文章目录 1、RPM1.1、什么是RPM&#xff1f;1.2、RPM包的名称格式1.2.1、RPM查询命令1.2.2、RPM卸载命令1.2.3、RPM安装命令 2、YUM2.1、什么是YUM?2.2、yum安装程序命令 3、安装JDK4、安装MySQL 1、RPM 1.1、什么是RPM&#xff1f; RPM&#xff08;RedHat Package Manager&a…

《学成在线》微服务实战项目实操笔记系列(P1~P49)【上】

《学成在线》项目实操笔记系列【上】&#xff0c;跟视频的每一P对应&#xff0c;全系列12万字&#xff0c;涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳&#xff0c;参考这篇&#xff0c;相信会带给你极大启发。同时也欢迎大家提问与讨论&#xff0c;我会尽力帮大家解…

阿里面试:Seata如何实现RC?保证事务的隔离性?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; Seata 如何实现 RC &#xff1f;保证事务的隔离性&#xff1…

使用sql创建数据库以及常用的sql简介

SQL简介 SQL&#xff08;Structured Query Language&#xff09;是一种用于管理关系数据库管理系统的标准编程语言。它用于执行各种操作&#xff0c;如查询、更新、插入和删除数据库中的数据。SQL是一种声明性语言&#xff0c;这意味着它指定了需要执行的操作&#xff0c;但不需…

docker进阶问题二

如何使用Docker的容器调试和故障排查工具&#xff1f; Docker提供了一系列工具和命令来帮助开发者调试和排查容器中的问题。以下是一些常用的调试和故障排查方法&#xff1a; 1. 容器日志 查看容器日志是最基本的调试手段。使用docker logs命令可以查看容器的标准输出&#…

Transformer实战-系列教程3:Vision Transformer 源码解读1

&#x1f6a9;&#x1f6a9;&#x1f6a9;Transformer实战-系列教程总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 Vision Transformer 源码解读1 Vision Transformer 源码解读2 Vision Transformer 源码解读3 Vis…

Vue 实现动态路由

Vue 实现动态路由 Vue中实现动态路由主要涉及到两个方面&#xff1a;一是路由的动态添加&#xff0c;二是基于路由的参数变化来动态渲染组件。这通常在使用Vue Router时进行配置和实现。以下是实现动态路由的一些基本步骤和概念&#xff1a; 安装和设置Vue Router npm insta…

kubesphere部署k8s-v1.23.10

功能&#xff1a; &#x1f578; 部署 Kubernetes 集群 &#x1f517; Kubernetes 多集群管理 &#x1f916; Kubernetes DevOps &#x1f50e; 云原生可观测性 &#x1f9e9; 基于 Istio 的微服务治理 &#x1f4bb; 应用商店 &#x1f4a1; Kubernetes 边缘节点管理 &#x1…

latex论文写作遇到的问题

图一&#xff1a; 图二&#xff1a; 图三&#xff1a; 使用模版的时候将图一转为图二&#xff1a;在.tex文件开头导言部分加上&#xff1a; \usepackage{titletoc} \titlecontents{section}[0pt]{\addvspace{1.5pt}\filright\bf}{\contentspush{第\thecontentslabel\ 章\qu…

2024.2.4 awd总结

防御阶段 感觉打了几次awd&#xff0c;前面阶段还算比较熟练 1.ssh连接 靶机登录 修改密码 [root8 ~]# passwd Changing password for user root. New password: Retype new password: 2.xftp连接 备份网站源码 我觉得这步还是非常重要的&#xff0c;万一后面被删站。。…

【幻兽帕鲁】如何快速部署私人服务器

看了许多关于如何部署服务器的&#xff0c;大部分都是要买阿里云或者腾讯云的服务器并且至少四核以上才能保证流畅运行。 但是对于想搭建私服但又没有技术的小白&#xff0c;确实是有点难度了。购买云服务器后还要配置服务器&#xff0c;配置OpenVPN、PalServer&#xff0c;doc…

解锁亚马逊测评防关联新技术:亚马逊鲲鹏系统

在亚马逊测评的过程中&#xff0c;一直以来都存在着一些技术难题&#xff0c;特别是在模拟买家行为时需要考虑诸多因素&#xff0c;包括关键词搜索、IP地址切换以及防关联等。然而&#xff0c;最新的技术突破&#xff0c;亚马逊鲲鹏系统正是为了解决这些问题而诞生的。 首先&am…

视频存储空间的计算:适用安防监控录像、视频会议录像、手机录像、短视频录像等场景

目 录 一、问题 二、计算方法 三、实例 1、需求 2、确定存储空间的计算方法 3、存储容量计算 一、问题 经常有客户、伙伴问我&#xff0c;视频监控中录像要多少个TB&#xff1f;要多少个硬盘&#xff1f;每次都要问问他们各种情况&#xff0c;是什么样的视…

No matching client found for package name ‘com.unity3d.player‘

2024年2月5日更新 下面的一系列操作最终可能都无用&#xff0c;大致这问题出现原因是我在Unity采用了Android方式接入Firebase&#xff0c;而Android接入实际上和Unity接入方式有配置上的不一样&#xff0c;我就是多做了几步操作如下。https://firebase.google.com/docs/androi…

【Java】Redis入门

1. Redis入门 1.1 Redis简介 Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。 官网&#xff1a;https://redis.io 中文网&#xff1a;https://www.redis.net.cn/ key-value结构存储&#xff1a; 主要特点&#xff1a; 基于内…

maven java 如何打纯源码zip包

一、背景 打纯源码包给第三方进行安全漏洞扫描 二、maven插件 项目中加入下面的maven 插件 <!-- 要将源码放上去&#xff0c;需要加入这个插件 --><plugin><artifactId>maven-source-plugin</artifactId><version>2.4</version><con…