死磕Lambda表达式(五)

每日作业 - JavaSE第7天 知识点 面向对象 题目1(训练) 定义手机类,手机有品牌(brand),价格(price)和颜色(color)三个属性,有打电话call()和sendMessage()两个功能。 请定义出手机类,类中要有空参、有参构造方法,set/get方法。 定义测试类,在主方法中使用空参构造创建对象,使用set方法赋值。 调用对象的两个功能,打印效果如下: 正在使用价格为3998元黑色的小米手机打电话....... 阅读详情

*/

private double price;

public String getBrand() {

return brand;

}

public void setBrand(String brand) {

this.brand = brand;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

@Override

public String toString() {

return “Mask{” +

“brand='” + brand + ‘’’ +

“, type='” + type + ‘’’ +

“, price=” + price +

‘}’;

}

}

然后,根据口罩品牌对口罩列表进行正序排序:

List maskList = new ArrayList<>();

maskList.add(new Mask(“3M”, “KN95”,17.8));

maskList.add(new Mask(“Honeywell”, “KN95”,18.8));

maskList.add(new Mask(“3M”, “FFP2”,19.8));

maskList.add(new Mask(“Honeywell”, “N95”,19.5)); 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】

maskList.sort(Comparator.comparing(Mask::getBrand));

for (Mask mask : maskList) {

System.out.println(mask);

}

运行结果如下:

Mask{brand=‘3M’, type=‘KN95’, price=17.8}

Mask{brand=‘3M’, type=‘FFP2’, price=19.8}

Mask{brand=‘Honeywell’, type=‘KN95’, price=18.8}

Mask{brand=‘Honeywell’, type=‘N95’, price=19.5}

[](()逆序

需求改了,要求按照口罩品牌进行逆序排列,这是还需不需要再构建一个Comparator接口的实例呢?答案是不需要,Comparator接口有一个默认方法reversed可以使其逆序,把上面的例子稍微修改一下:

maskList.sort(Comparator.comparing(Mask::getBrand).reversed());

运行结果如下:

Mask{brand=‘Honeywell’, type=‘KN95’, price=18.8}

Mask{brand=‘Honeywell’, type=‘N95’, price=19.5}

Mask{brand=‘3M’, type=‘KN95’, price=17.8}

Mask{brand=‘3M’, type=‘FFP2’, price=19.8}

[](()比较器链

需求又改了,先按照口罩品牌逆序排序,如果口罩品牌一样,再按照口罩类型正序排序。Comparator接口还有一个默认方法thenComparing就是做这个的,它的入参也是一个Function接口的实例,如果前一个比较器的比较结果相同,就当前的比较器再进行比较,我们再来修改一下上面的例子:

maskList.sort(Comparator.comparing(Mask::getBrand)

.reversed()

.thenComparing(Mask::getType));

运行结果如下:

Mask{brand=‘Honeywell’, type=‘KN95’, price=18.8}

Mask{brand=‘Honeywell’, type=‘N95’, price=19.5}

Mask{brand=‘3M’, type=‘FFP2’, price=19.8}

Mask{brand=‘3M’, type=‘KN95’, price=17.8}

需求又又改了,先按照口罩品牌逆序排序,如果口罩品牌一样,再按照口罩价格正序排序。口罩价格是double类型,如果使用thenComparing会导致自动装箱,造成资源的白白浪费。所以,推荐使用thenComparingDouble方法,它的入参是ToDoubleFunction,代码修改如下:

别再只看成交量了!用通达信这个VOL监测公式,一眼识别主力吸筹与出货信号 本文详细介绍了通达信VOL监测公式的实战应用,通过彩色量柱和换手率分层技术,帮助投资者识别主力吸筹与出货信号。该公式结合动态量能标准化和多周期均线组合,提供可视化主力行为图谱,提升交易决策的准确性。 阅读详情

相关推荐

Xiaojie雷达之路---毫米波雷达基础知识---中频信号的相位

本篇文章主要介绍毫米波雷达的基础知识中的中频信号的相位 文章目录傅里叶变换的快速回顾中频信号的相位中频信号对物体微小位移的灵敏度如何2个chirps来对一个物体的速度进行测量测量一个振动的物体 傅里叶变换的快速回顾 傅里叶变换是将一个信号从时域中转换到频域中,在时域中的一个正弦信号将在频域中产生一个峰值,在大多数情况下,在频域中的一个信号是一个复数(每个值是一个振幅和相位的向量),表示为AejθAe^{j\theta}Aejθ 在频域中峰值的相位等于正弦函数的初始相位 中频信号的相位 上一篇文章中提到,

XiaoJie的博客 1万+

多线程经典案例(Java实现)

卖票和生产者和消费者问题

lixin1997的博客 1031

Ubuntu24.04/20.04设置网络共享文件夹

Ubuntu20.04利用向日葵远程控制时,不能传输文件。使用linux版本QQ来传输是可以的,不过linuxqq功能真的很弱。因此,打算在Ubuntu系统中建立一个共享文件夹,可在局域网中访问。 1、新建共享文件夹 获取root权限,或者登陆root账户。可在/home文件夹(或其它文件夹)下新建一个文件夹,如share。 右击文件夹,选择“本地网络共享”菜单。按下图设置。 点击确定。如果系统已经安装了samba服务器,就可以进入第3步。如果没有,会提示安装,按提示安装,可能会出错,可进.

willhu2008的专栏 2万+

java简单练习

对象数组练习

weixin_53058293的博客 325

ADAS系统架构与核心功能解析:从感知到执行的智能驾驶方案

高级驾驶员辅助系统(ADAS)是现代汽车智能化的核心技术,其本质是通过传感器融合、算法决策与车辆控制,构建一个“感知-决策-执行”的闭环系统。在技术原理上,ADAS依赖摄像头、毫米波雷达、激光雷达等多源传感器进行环境感知,并通过深度学习模型与融合算法(如卡尔曼滤波)构建精准的环境模型。其技术价值在于提供主动安全冗余与驾驶舒适性,核心应用场景包括自动紧急制动(AEB)、自适应巡航(ACC)及车道保持辅助(LKA)等。随着传感器成本下降与域控制器算力提升,ADAS正从高端配置向主流车型快速普及,并逐步向高阶导航

weixin_31062533的博客 415

【unity小技巧】实现FPS射击游戏枪武器随镜头手臂摇摆效果(2025/12/11补充)

如果我们视角移动转向,武器如果不跟着进行摇摆,会感觉我们的动作很生硬,特别是射击类游戏,如下实现武器摇摆这里主要分享两种实现方法,一种是改变武器位置,一种是修改武器旋转想要使用哪种方法都可以,看你自己喜欢,如果是我,我会选择第二种,比较简单,参数也少,而且个人感觉效果也更好,已枪中心做旋转更符合现实。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1470

java中Condion

Condition是在Java1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Condition1的await()、signal()这种方式实现线程间协作更加安全和高效。 它的更强大的地方在于:能够更加精细的控制多线程的休眠与唤醒。对于同一个锁,我们可以创建多个Condition,在不同的情况下使用不同的Condition 一个Condition包含一个等待队列。一个Lock可以产生多个Condit

qq_43488287的博客 585

PNP NPN线性接近开关接线嵌入式:详细指南与示例代码

在嵌入式系统中,PNP和NPN线性接近开关是常用的传感器类型,用于检测物体的接近或离开。在嵌入式系统中,PNP和NPN线制接近开关是常用的传感器类型,用于检测物体的接近或离开。本文提供了有关PNP和NPN线性接近开关接线的详细指南,并提供了一个简单的示例代码,以帮助您在嵌入式系统中正确使用这些传感器PNP NPN 线制接近开关接线 嵌入式:详细指南与示例代码。与PNP开关不同的是,NPN线性接近开关的正极连接至系统的正极电源。与PNP开关不同的是,NPN线制接近开关的正极连接至系统的正极电源。

CyberSphinx的博客 1272

手机类的练习

定义手机类: 手机有品牌(brand),价格(price)和颜色(color)三个属性; 需要进行私有化操作; 有打电话call()和sendMessage()两个功能 类中要有set/get方法。 定义手机测试类: 在主方法中分别使用有参和空参创建对象。 提供set和get方法。 调用对象的两个方法使用功能。 手机类代码实现: public class Phone { //定义成员变量,私有化 private String brand,color; priva

JIE结弦的博客 1918

PCL 直通滤波

内容抄自优快云点云侠:[【2024最新版】PCL点云处理算法汇总(C++长期更新版)](https://blog.youkuaiyun.com/qq_36686437/article/details/114160640)。质量无忧,永久免费,可放心复制粘贴。

m0_51204289的博客 903

设计原则:面向对象设计原则详解

我们在应用程序开发中,一般要求尽量两做到可维护性和可复用性。 应用程序的复用可以提高应用程序的开发效率和质量,节约开发成本,恰当的复用还可以改善系统的可维护性。而在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。面向对象设计原则和设计模式也是对系统.........

黄规速博客:学如逆水行舟,不进则退 4万+

死磕Lambda表达式(五):Comparator复合

JDK不仅提供的这些函数式接口,其中一些接口还为我们提供了实用的默认方法,这次我们来介绍一下Comparator复合。

万猫学社 1万+

USB 基础学习:USB 电气信号介绍

USB电气信号技术解析 USB通信的核心是差分信号传输技术,通过D+和D-两根线传输相位相反的电压信号实现数据通信。USB信号系统包含三类关键信号:差分数据信号(抗干扰性强)、单端状态信号(用于设备识别)和电源信号(提供5V供电)。USB2.0采用400mV电压摆幅和NRZI编码,支持低速(1.5Mbps)至高速(480Mbps)传输;USB3.0则新增专用差分对,数据速率可达20Gbps。物理层通过上拉/下拉电阻检测设备连接,高速模式需特殊握手协议。抗干扰设计的关键在于保持差分线等长、阻抗匹配和使用共模扼

浩瀚之水的专栏 1782

死磕Lambda表达式(一):初识Lambda

Lambda表达式是表示可传递匿名函数的一种简洁方式,Lambda表达式没有名称,但是有参数列表、函数主体、返回类型,还可能有一个可以抛出的异常列表。

万猫学社 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

死磕Lambda表达式(二):Lambda的使用

在哪使用Lambda表达式?怎么样正确的使用Lambda表达式?

万猫学社 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

死磕Lambda表达式(四):常用的函数式接口

在Java8支持Lambda表达式以后,为了满足Lambda表达式的一些典型使用场景,JDK为我们提供了大量常用的函数式接口。它们主要在 java.util.function 包中,下面简单介绍几个其中的接口及其使用示例。

万猫学社 4万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

死磕Lambda表达式(三):更简洁的Lambda

写出更简洁、更易懂的Lambda表达式。

万猫学社 1万+

死磕Lambda表达式(六):Consumer、Predicate、Function复合

JDK不仅提供的这些函数式接口,其中一些接口还为我们提供了实用的默认方法,这次我们来介绍一下Consumer、Predicate、Function复合。

万猫学社 1万+

死磕Lambda表达式(二)

public interface Callable { V call() throws Exception; } Callable接口只有一个call抽象方法,所以它也是函数式接口。 你可以已经发现了,Callable接口上有一个注解@FunctionalInterface,该注解用于标志该接口是一个函数式接口。如果你编写了一个不是函数式接口的接口,并且加了@FunctionalInterface注解,编译就会报错,需要注意一下。 看了以上的例子,是不是撸胳膊挽袖子准备大干一场?别急,检验出真知,我们先简单

m0_69526738的博客 1909

如何理解Lambda表达式

在疯狂java讲义中,这么写到:Lambda表达式允许使用更简洁的代码来创建只有一个抽象方法的接口(这种接口被称为函数式接口的实例。一个注解,Java 8专门为函数式接口提供了@FunctionalInterface注解, 该注解通常放在接口定义前面,该注解对程序功能没有任何作用,它用于告诉编译器执行更严格检查—检查该接口必须是函数式接口(也是就是说里面只有一个抽象方法),否则编译器就会报错。并不是所有匿名内部类都可以这样简化,匿名内部类只有一个抽象方法的匿名内部类可以这样进行简化的操作。

m0_58680378的博客 986

Java 8 新特性—Lambda 表达式

Lambda 表达式是在 Java 8 中引入,并且被吹捧为 Java 8 最大的特性。它是函数式编程的的一个重要特性,标志着 Java 向函数式编程迈出了重要的第一步。或者其中parameters:是 Lambda表达式的参数列表,可以为空或包含一个或多个参数。->:是 Lambda 操作符,用于将参数和 Lambda 主体分开。expression:是 Lambda 表达式的返回值,或者在主体中执行的单一表达式。

smart_an的专栏 1142

死磕Lambda表达式(三)(1),Java笔试编程题题库

如果你选择了IT行业并坚定的走下去,这个方向肯定是没有一丝问题的,这是个高薪行业,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了《Java中高级核心知识全面解析》,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了《Java中高级核心知识全面解析》[外链图片转存中…(img-KPb5PMhV-1710425977433)][外链图片转存中…(img-PPIAhdzv-1710425977433)]本文已被。

碧海朝天素 539

C# Lambda表达式与委托深度解析:从语法糖到表达式树

Lambda表达式是C#中连接函数式编程与面向对象范式的桥梁,其本质并非简单语法糖,而是编译器根据上下文(Func<T> 或 Expression<Func<T>>)动态生成委托或可遍历表达式树的类型安全机制。理解其底层原理——包括MulticastDelegate内存结构、泛型委托避免装箱的性能优势、以及Expression树如何被EF Core翻译为SQL——对构建高性能、可维护的.NET应用至关重要。它支撑着ASP.NET Core中间件、Blazor事件绑定、LINQ查询优化及动态规则引擎等核心场景

weixin_40192258的博客 418

死磕Java内部类

Java内部类,相信大家都用过,但是多数同学可能对它了解的并不深入,只是靠记忆来完成日常工作,却不能融会贯通,遇到奇葩问题更是难以有思路去解决。这篇文章带大家一起死磕Java内部类的方方面面。 友情提示:这篇文章的讨论基于JDK版本 1.8.0_191 开篇问题 我一直觉得技术是工具,是一定要落地的,要切实解决某些问题的,所以我们通过先抛出问题,然后解决这些问题,在这个过程中...

weixin_30758821的博客 155

死磕synchronized五:系统剖析轻量级锁

哈喽,大家好,我是江湖人送外号[道格牙]的子牙老师。 近期准备写一个专栏:从Hotspot源码角度剖析synchronized。前前后后大概有10篇,会全网发,写完后整理成电子书放公众号供大家下载。对本专栏感兴趣的、希望彻彻底底学明白synchronized的小伙伴可以关注一波。电子书整理好了会通过公众号群发告知大家。我的公众号:硬核子牙。 本篇文章给大家分享关于轻量级锁的所有。在synchronized的所有锁类型中,轻量级锁是最简单的,但是这个简单是相对的,如果不具备一些底层的思维及学习底层的办法,它的

子牙老师 415
上一篇: 架构师:优秀的代码都是如何分层的?
下一篇: 三、Redis在SpringBoot中使用案例
java100001
博客等级 码龄5年 4粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值