Java 学习和实践笔记(50):使用Comparable 接口确定对象根据什么属性来排序

多个对象进行排序时,需要根据对象的什么属性来排序。

例如,同样都是人,可以根据人的身高排序,可以根据人的年龄排序。因此,当对多个人进行排序时,就要事先确定好根据人的什么属性来排序。

使Comparable 接口,就是用来做这个的。

示例代码:

import java.util.Arrays;class Man2 implements Comparable{ //创建一个Man2类,同时让这个类实现Comparable接口int age;//定义Man2类的三个普通属性int id;String name; public Man2 (int age, String name){//定义Man2类的构造器super();this.age = age;this.name = name;}public String toString(){//重写toString,这样后面在使用它输出时就只输出名字return this.name;}public int compareTo (Object o) {//实现Comparable接口里要的方法,定义清楚以什么属性来比较//int 表示返回值是整数型Man2 man2 = (Man2) o;//当Arrays.sort(manyMan)在底层调用compareto方法时,无论传进来什么对象//都强制转换成Man2类型if(this.age < man2.age){return  -1;}if(this.age >man2.age){return  1;}return  0;}
}public class Test003 {public static void main(String[] args) {Man2[] manyMan = {new Man2(18,"张三"),new Man2(60,"李四"),new Man2(10,"王五"),};System.out.println(Arrays.toString(manyMan));Arrays.sort(manyMan);System.out.println(Arrays.toString(manyMan));}}

运行结果:

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

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

相关文章

使用verilog实现俄罗斯方块游戏

编写俄罗斯方块游戏需要进行大量的硬件设计,包括图形显示、用户输入处理、游戏逻辑等。以下是一个简单的基于Verilog的俄罗斯方块游戏示例,用于说明该过程: ```verilog module tetris_game ( input clk, // 时钟信号 input reset, // 复位信号 input lef…

kubernetes(K8S)学习(八):K8S之常见部署方案

K8S之常见部署方案 一、普通部署二、滚动更新&#xff08;Rolling update&#xff09;三、蓝绿部署&#xff08;Blue/Green Deployment&#xff09;四、灰度发布&#xff08;金丝雀发布&#xff09; 常见的部署方案参考博文&#xff1a;常见部署方案&#xff1a;普通部署、滚动…

【物联网项目】基于ESP8266的家庭灯光与火情智能监测系统——文末完整工程资料源码

目录 系统介绍 硬件配置 硬件连接图 系统分析与总体设计 系统硬件设计 ESP8266 WIFI开发板 人体红外传感器模块 光敏电阻传感器模块 火焰传感器模块 可燃气体传感器模块 温湿度传感器模块 OLED显示屏模块 系统软件设计 温湿度检测模块 报警模块 OLED显示模块 …

Java基础之自增自减运算符

Java基础之自增自减运算符 基本用法 int a 10;a; System .out.prinln(a);//a11int a 10;a; System .out.prinln(a);//a11tip: 第一次运算之后a的值会更新 然后再进行下面的运算!!! 练习: 代码呈现: 结果: tip: x的值是最新的x的值.

微信小程序开发【从入门到精通】——页面导航

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

el-select的错误提示不生效、el-select验证失灵、el-select的blur规则失灵

发现问题 在使用el-select进行表单验证的时候&#xff0c;发现点击下拉列表没选的情况下&#xff0c;他不会提示没有选择选项的信息&#xff0c;我设置了rule如下 <!--el-select--><el-form-item label"等级" prop"level"><el-select v-m…

Y Combinator W24 AI 创业地图

近日公布&#xff0c;Y Combinator的W24 AI创业地图上&#xff0c;有149家公司专注于AI领域&#xff0c;占到了总数的63%哦&#xff01; 而且&#xff0c;这些公司中&#xff0c;有70%是在应用层发力&#xff0c;28%则专注于工具层&#xff0c;只有2%是搞基础设施的。 分类百分…

esp单片机下arduino_gfx不相干显示驱动优化对flash空间的占用对比

一般情况下&#xff0c;很多esp32或者esp8266下的tft模块驱动都会包含很多种&#xff0c;而我们只需要其中一种&#xff0c;那就有个疑问这些被编译进的显示驱动到底占用了多少空间&#xff0c;是否需要把他优化掉&#xff1f; 这是默认的驱动列表&#xff1a; 84个文件&…

对谈Concured首席技术官:利用AI和MongoDB打造个性化内容推荐系统

Built with MongoDB 栏目采访了AI初创企业Concured在成立约一年后加入的首席技术官 Tom Wilson&#xff0c;围绕 Concured 的人工智能使用情况、Wilson 加入团队的过程、坚持选择MongoDB的原因以及公司未来发展展开讨论。 关于Concured 内容无处不在。无论消费者寻找什么或所处…

解决WSL更新速度慢的方案

在Windows上安装Docker Desktop时&#xff0c;如果选择使用WSL&#xff0c;则可能会出现在运行程序前要求升级WSL的步骤。程序会提示使用下面指令来升级 wsl.exe --update但是升级速度特别慢&#xff0c;于是在网络不稳定的情况下经常会出现下载失败的情况。 百度里一直没搜到…

选择华为HCIE培训机构有哪些注意事项

选择软件培训机构注意四点事项1、口碑&#xff1a;学员和社会人士对该机构的评价怎样&#xff1f; 口碑对于一个机构是十分重要的&#xff0c;这也是考量一个机构好不好的重要标准&#xff0c;包括社会评价和学员的评价和感言。誉天作为华为首批授权培训中心&#xff0c;一直致…

boost::asio::ip::tcp/udp::socket::release 函数为什么限制 Windows 8.1 才可以调用?

如本文题目所示&#xff0c;这是因为只有在 Windows 8.1&#xff08;Windows Server 2012 RC&#xff09;及以上 Windows 操作版本才提供了运行时&#xff0c;修改/删除完成端口关联的ABI接口。 boost::asio 在 release 函数底层实现之中是调用了 FileReplaceCompletionInform…

java实现udp客户端

import java.net.*; public class UdpClient { public static void main(String[] args) throws Exception { // 定义服务器地址和端口号 String serverAddress "127.0.0.1"; int serverPort 8888; // 创建数据包对…

【每日力扣】343. 整数拆分与63. 不同路径 II

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害 343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使…

各种除湿机的方案介绍

1.冷却除湿机: 1.1按使用功能分,可分为:一般型、降温型、调温型、多功能型。 一般型除湿机是指空气经过蒸发器冷却除湿,由再热器加热升温,降低相对湿度,制冷剂的冷凝热全部由流过再热器的空气带走,其出风温度不能调节,只用于升温除湿的除湿机。 降温型除湿机是指在一…

算法打卡day31|贪心算法篇05|Leetcode 435. 无重叠区间、763.划分字母区间、56. 合并区间

算法题 Leetcode 435. 无重叠区间 题目链接:435. 无重叠区间 大佬视频讲解&#xff1a;无重叠区间视频讲解 个人思路 和昨日的最少箭扎气球有些类似&#xff0c;先按照右边界排序&#xff0c;从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的…

VUE3 之 HOOKS公共方法封装(TS)

场景&#xff1a;在项目开发过程中大概率会出现复用性方法&#xff0c;故为了节省代码量对公共方法进行抽象提取&#xff0c;将其封装为公共方法&#xff0c;以便于在不同组件中快速使用。 举例分页器方法提取&#xff1a; src下新建hooks文件夹&#xff0c;新增ts文件&#x…

ubuntu22.04,放弃ibus,改用fcitx5

ubuntu22.04,放弃ibus,改用fcitx5 放弃ibus原因&#xff1a; 切换到中文输入法时&#xff0c;总是将选中的文字 删除了 &#xff0c;也有时候莫名其妙会删除文字在中文输入法下&#xff0c;光标总是没有感觉用久了&#xff0c; 切换到中文输入法会停留在切换界面 至少3秒在浏…

每日一篇 3.30

preview:预览 release the feature&#xff1a;发布功能 convincing human voice&#xff1a;令人信服的人声 raising the specter of deepfake risks:引发了深度造假风险的担忧 sharing early demos&#xff1a;分享早期演示 a small-scale &#xff1a;小规模 rollout of…

基于Web的社区医院管理服务系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 1. 系统功能…