compare用法java_Java中的Compare和Comparator的使用方法
Java中的Compare和Comparator的使用方法
发布时间:2020-05-23 09:24:06
来源:亿速云
阅读:358
作者:Leah
如何使用Java中的Compare和Comparator?相信很多新手小白对Compare和Comparator的了解处于懵懂状态,通过这篇文章的总结,希望你能有所收获。如下资料是关于Compare和Comparator使用方法的代码。class Apple implements Comparable{
int id;
double price;public Apple(int id, double price) {
this.id = id;
this.price = price;
}
public int compareTo(Apple o) {
//return Double.compare(this.getPrice(),o.getPrice());
if (Math.abs(this.price-o.price)<0.001)
return 0;
else
return (o.price-this.price)>0?1:-1;
}
@Override
public String toString() {
return "Apple{" +
"id=" + id +
", price=" + price +
'}';
}
}```
class AESComparator implements Comparator{public int compare(Apple o1, Apple o2) {
if (Math.abs(o1.price-o2.price)<0.001)
return 0;
else{
return (o1.price-o2.price)>0?1:-1;
}
}
}
实现了Comparable接口的类需要实现compareTo()方法,传入一个外部参数进行比对,实现了Comparator接口的方法需要实现compare()方法,对外部传入的两个类进行比较,从而让外部方法在比较时调用。
两者的区别是实现Comparator接口代码更加灵活,可以定义某个类的多个比较器,从而在排序时根据实际场景自由调用,而Comparable接口实现后便不能改动。
总结:
comparator接口:真正要实现的只有compare()方法,需要单独准备出一个类来实现comparator接口,这个类将作为指定类的排序类
public int compare(Emp o1,Emp,o2){
return o1.id - o2.id
}
这是说如果o1的id - o2的id是正数就升序,如果负数降序。如果0就剔除
>0 升序
<0降序
=0 重复,不记录
comparable接口实现该类接口不需要重新创建一个排序的类,使用接口compareble接口排序,只要重写里面的compareTo()方法
Collections类是一个包装类,它包含有各种有关集合操作的静态方法。就像一个工具类。
Collections.sort()
sort()排序方法,根据元素的自然排序对指定列表按升序进行排序
public static void sort(List list,Comparator<>),根据指定比较器产生的顺序对指定列表进行排序,此列表内的所有元素都必须可使用指定的比较器相互比较
参数:list——要排序的列表
C——确定列表顺序的比较器
猜你还想看:
关于Java中的Compare和Comparator的使用方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。
compare用法java_Java中的Compare和Comparator的使用方法相关推荐
- python中zeros用法_python中numpy.zeros(np.zeros)的使用方法
python 的 python中numpy.zeros(np.zeros)的使用方法 翻译: 用法:zeros(shape, dtype=float, order='C') 返回:返回来一个给定形状和 ...
- linux中read函数的用法,Linux中read命令的简介及使用方法
Linux中read命令的简介及使用方法 发布时间:2020-08-17 16:40:04 来源:亿速云 阅读:107 作者:小新 这篇文章给大家分享的是有关Linux中read命令的简介及使用方法的 ...
- while的用法java_java中的while循环和do while循环
那么在讲解循环之前呢我们先来了解一下什么是循环 生活中的例子 车子的轮胎他就是一直在循环 马拉松跑到也是在循环 因为运动员不停的一圈一圈在跑这也是一个循环 那么我们为什么要学习循环呢? 下面看一个 ...
- drawimage的用法 java_java中方法drawImage()的参数详细解释
public abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver obse ...
- constrain用法java_Java中的@UniqueConstraint注释
问题 我有一个Java bean.现在,我想确保该字段应该是唯一的.我使用以下代码: @UniqueConstraint(columnNames={"username"}) pub ...
- java properties用法_java中Properties文件加载和使用方法
一.Properties简介 Properties 类继承自HashTable,提供的方法很像Map的实现类HashMap.它在 Java 编程的早期就有了,并且几乎没有什么变化.J2SE 的 Tig ...
- c语言endswith用法,js中的indexOf以及startsWith和endsWith方法
js有indexOf方法,却没有像java同样的startsWith 或者 endsWith 这样的方法.javascript 在js里,统统能够用 indexOf()!=-1 来代替.indexOf ...
- java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法
compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...
- java中compare语句的用法_Java RuleBasedCollator compare()用法及代码示例
java.text.RuleBasedCollator类的compare()方法用于比较两个对象的强度,并且根据结果将返回0,正值和负值作为输出. 用法: public int compare(O ...
最新文章
- 操作系统期末复习重点题型归纳
- hasattr判断是不是可迭代类型的方法
- iOS设计模式 ——单例模式详解以及严格单例模式注意点
- fir fpga 不同截止频率_一种新的FIR滤波器系数量化方法
- php at,PHP的at符号
- int fun(int n){switch(n){case 0: return 0;case 1: return 1;case 2: return 1;default:return fun(n-)}}
- ASIC与FPGA的最大区别是什么 可否相互替代
- 桌面图标无故变成白色
- cacti监控部署——网络流量监控
- 《大数据时代》读后感,维克托
- 论文投稿指南——中国(中文EI)期刊推荐(第4期)
- 昆石VOS2009/VOS3000 2.1.6.00 操作指南
- pes2017服务器维护时间,PES2017授权详情与球场数据包发布时间
- 关于 Kubernetes中deployment的一些笔记
- 诺基亚升级Android10,诺基亚发布第五次Android 10更新 ,诺基亚7+可升级
- 遥感卫星影像数据全色波段和多光谱波段
- 2022-06 CCF
- c++:vector sort()排序
- ApiOne URL 调用说明
- 【C++】Windows控制台API基本使用(上)