Java学习:Comparator和Comparable

一.Comparator的使用

1.Arrays.sort

        给基本类型的数组进行排序的方法,默认是实现升序,也可以通过方法写匿名类自定义实现升降序排序。

代码:

Arrays.sort(arr,new Comparator<Integer>(){@Overridepublic int compare(Integer o1, Integer o2) {if(o1<o2)return 1;else return -1;}});

2.Collections.sort

        给List类的可变长数组进行排序的方法,默认是实现升序,也可以通过方法覆写Comparator接口的compara自定义实现升降序排序。

代码:

 Collections.sort(st,new Comparator<Integer>() {public int compare(Integer o1, Integer o2) {if(o1<o2)return 1;else return -1;}
});

二、Comparable的使用

        用于自定义类继承该接口,该类的实例即可放入TreeSet中实现自定义排序。

代码:

//main方法
import rpg.Margicion;
import java.util.HashSet;
import java.util.TreeSet;public class Main {public static void main(String[] args)  {HashSet<Margicion> s=new HashSet<>();Margicion r=new Margicion("b", 15, 20);Margicion d=new Margicion("a", 15, 20);TreeSet<Margicion> e=new TreeSet<>();e.add(r);e.add(d);for (Margicion margicion : e) {System.out.println(margicion.toString());}}
}
//自定义类需要继承Comparable接口,才能使用TreeSet
class Margicion extends Role implements Comparable<Margicion> {//类的相关初始化@Overridepublic void showfight(){System.out.println("挥剑攻击");System.out.println(super.blood);System.out.println(blood);}@Overridepublic String toString() {return "Margicion [blood=" + name + "]";}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + blood;return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Margicion other = (Margicion) obj;if (blood != other.blood)return false;return true;}public Margicion(String name ,int blood ,int alt){this.alt=alt;super.blood=blood;this.name=name;}//覆写comparaTo方法,是调用方法的对象和括号里的元素比较,//大于返回1,小于返回-1,等于返回0,具体的操作可以自己实验@Overridepublic int compareTo(Margicion o) {if(name.compareTo(o.name)==-1){return 1;}else {return -1;}}}

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

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

相关文章

代码随想录算法训练营第二十六天 | 回溯算法part3

目录 力扣题目 力扣题目记录 39. 组合总和 40.组合总和II 补充 131.分割回文串 优化 总结 力扣题目 用时&#xff1a;未知 1、39. 组合总和 2、40.组合总和II 3、131.分割回文串 力扣题目记录 39. 组合总和 可以重复&#xff0c;所以startIndex的处理和之前不同剪枝…

CentOS7之开启ssh远程登录

参考&#xff1a;https://www.cnblogs.com/travis-li/p/12550370.html cd /etc/ssh/ # 修改配置 vim sshd_config# 开启服务 sudo service sshd start# 检查 ps -e | grep sshd# 开机自启 systemctl enable sshd.service# 查看(验证)开机自启服务 [rootlocalhost liangshijie]…

【已解决】Excel“打开密码”在哪里设置?

Excel可以设置“打开密码”&#xff0c;设置后只要打开表格就会提示文件有密码保护&#xff0c;需要输入密码&#xff0c;才能查看表格里面的内容。 那Excel“打开密码”在哪里设置呢&#xff1f;Excel提供了两种路径可以选择。 选择一、直接在Excel里设置 操作步骤&#xff1…

facebook广告企业户对账户有什么要求

Facebook广告企业户对账户的要求如下&#xff1a; 企业账户只能通过代理商开户&#xff0c;需提供营业执照&#xff0c;个人FB账号&#xff0c;FB主页。广告充值&#xff0c;要通过代理商充值。企业广告账户操作要通过Facebook BM平台授权&#xff0c;开户前需自己先创建BM平台…

市场复盘总结 20231226

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整 昨日回顾&#xff1a; SELECT CODE,成交额排名,净流入排名,代码,名称,DDE大单金额,涨幅,主力净额,DDE大单净量,CONVERT(DATETIME, 最后封…

EN 438-7-2005 高压装饰层压板(HPL)CE认证

热固性树脂浸渍纸高压装饰层压板是指用氨基树脂浸渍的表层纸、装饰纸和用酚醛树脂浸渍的底层纸&#xff0c;层积后在高压下热压而成的一种装饰材料&#xff0c;简称高压装饰板&#xff08;HPL&#xff09;&#xff0c;具有防火&#xff0c;防潮&#xff0c;抗菌等性能&#xff…

海德堡UV灯电源维修eta Plus Elc PE22-400-210

uv灯电源维修故障包括&#xff1a; 1、电压不稳&#xff1a;检查uv打印机的电压&#xff0c;设置一个稳压箱即可。 2、温度过高&#xff1a;uv打印机温度过高也会影响uv灯&#xff0c;可以更换为水冷式循环降温。 3、水箱里的信号线接触不好&#xff1a;将两边的信号线对调&…

Hive文件存储与压缩

压缩和存储 1、 Hadoop压缩配置 1) MR支持的压缩编码 压缩格式工具算法文件扩展名是否可切分DEFAULT无DEFAULT.deflate否GzipgzipDEFAULT.gz否bzip2bzip2bzip2.bz2是LZOlzopLZO.lzo否LZ4无LZ4.lz4否Snappy无Snappy.snappy否 为了支持多种压缩/解压缩算法&#xff0c;Hadoop…

理解MoCo

目录 1、简介 2、MoCo 2.1、引言 2.2、主要贡献 2.3、相关工作 2.4、方法 2.4.1、损失函数 2.4.2、队列 2.4.3、动量编码器 2.4.4、前向过程 2.5、实验 2.5.1、网络结构比较 2.5.2、动量参数m 2.5.3、imageNet数据集结果 2.5.4、迁移特性 2.6、MoCo代码 1、简介…

cfa一级考生复习经验分享系列(十一)

理工科已经毕业&#xff0c;正在工作&#xff0c;毫无金融背景。一共准备了四个月&#xff0c;每天下班和周末抽时间看看。前三个月节奏比较松散&#xff0c;毕竟时不时有人叫我出去high&#xff0c;最后一个月认真看了看。 用到的资料 JC网课&#xff0c;官方Mock&#xff0c;…

Go和Java实现工厂方法模式

Go和Java实现工厂方法模式 本文通过计算器案例来说明工厂方法模式的使用&#xff0c;使用Go语言和Java语言实现。 1、工厂方法模式 工厂方法模式是最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方 式。 在工厂…

数字音频编辑软件audition 2021 mac功能介绍

Audition 2021 mac是一款专业数字音频编辑软件&#xff0c;提供先进的音频混音、编辑和效果处理功能&#xff0c;专为音频和视频专业人员设计。无论是要录制音乐、无线电广播&#xff0c;还是为录像配音&#xff0c;Audition都能帮到您。它可提供先进的音频混合、编辑、控制和效…

深度学习中的收敛是什么意思?

在深度学习中&#xff0c;“收敛” 指的是训练过程中模型逐渐学习并改善其性能&#xff0c;直到达到一种稳定状态。具体来说&#xff0c;这通常涉及以下几个方面&#xff1a; 1. 损失函数的减少 深度学习模型的训练通常涉及最小化一个称为损失函数&#xff08;或代价函数&#…

Zookeeper的使用场景

统一命名服务 利用ZooKeeper节点的树形分层结构和子节点的顺序维护能力&#xff0c;来为分布式系统中的资源命名。 例&#xff1a;分布式节点命名 分布式消息队列 1.在Zookeeper中创建一个持久节点&#xff0c;用作队列的根节点。队列元素的节点放在这个根节点下。 2.入队:…

【Unity学习笔记】1.创建场景

创建场景 注1&#xff1a;samplescene&#xff08;示例场景&#xff09;、standard assets&#xff08;标准资产&#xff09;、favorites&#xff08;收藏夹&#xff09;、terrain&#xff08;地形&#xff09;。 注2&#xff1a;favorites用于存放各种资源&#xff1b;sample…

Spring-2-配置和Springboot

bean的生命周期 挂钩到bean的创建 通过了解初始化的时间&#xff0c;bean可以检查是否满足其所需的所有依赖项。 尽管Spring可以帮助我们检查依赖项&#xff0c;但它几乎是一种全有或全无的方法&#xff0c;并且不会提供任何机会来将其他逻辑应用于依赖项的解析过程中。 假设…

打破常规:瑞幸咖啡如何实施RGM策略来逆袭市场趋势

瑞幸咖啡仅用短短18个月时间从品牌创立到纳斯达克上市&#xff0c;刷新全球最快上市记录。2020年因交易造假事件被勒令退市股价暴跌80%&#xff0c;有人说这个创造了赴美IPO奇迹的“巨婴”将是下一个倒下的ofo。2022年瑞幸咖啡以逆势超速增长领跑咖啡赛道有力回应了市场的质疑&…

TCP协议及工作原理(三)客户端的搭建

ui界面的搭建 &#xff1a; QTcpServer是基于TCP的服务器类提供一种方便的方式管理和创建TCP服务器&#xff0c;QTcpSocket处理TCP套接字编程用于建立TCP连接&#xff0c;发送接收数据等功能。 参考前两篇可深入理解&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

用 Unity 实现的安检模拟小游戏源码,通过安检设备 (扫描仪) 检查乘客的随身物品 根据禁止名单对乘客做出判断是否允许通行

介绍 用 Unity 实现的安检模拟小游戏 软件版本 Unity 2019.4.9f1 (64-bit) Visual Studio 2019 游戏玩法 在游戏中你将扮演一名安全检查员 通过安检设备 (扫描仪) 检查每位乘客的随身物品 根据禁止名单对乘客做出判断&#xff1a;允许通行或者下令逮捕 游戏效果 游戏截图…

带你学C语言~指针(3)

目录 ✍0.前言 &#x1f680;1.字符指针变量 &#x1f685;2.数组指针变量 &#x1f431;‍&#x1f3cd;2.1.数组指针变量是什么 &#x1f431;‍&#x1f3cd;2.2数组指针变量怎么初始化 &#x1f6a2;3.二维数组传参的本质 &#x1f680;4.函数指针变量 ✈4.1函数指…