这篇文章将为大家详细讲解有关Java中的比较器有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。通常对象之间的比
这篇文章将为大家详细讲解有关Java中的比较器有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。
通常对象之间的比较可以从两个方面去看:
第一个方面:对象的地址是否一样,也就是是否引用自同一个对象。这种方式可以直接使用“==“来完成。
第二个方面:以对象的某一个属性的角度去比较。
从最新的JDK8而言,有三种实现对象比较的方法:
一、覆写Object类的equals()方法;
二、继承Comparable接口,并实现compareTo()方法;
三、定义一个单独的对象比较器,继承自Comparator接口,实现compare()方法。
由于使用的排序方式的不同,具体选择哪种方法来实现对象的比较也会有所不同。
覆写equals()方法,一般用于自己实现对象数组排序的情况,而对于要使用java内置的排序算法时,使用后面两种方式都是可行的。
先来看第二种方式,这种方式就是让自己编写的类继承Comparable接口,并实现compareTo()方法,这种情况下,在使用java.util.Arrays.sort()
方法时,不用指定具体的比较器,sort()方法会使用对象自己的比较函数来完成对象的排序。
下面是一个具体的例子:
import java.util.Arrays;class BookCook implements Comparable<BookCook>{private String title;private double price;public BookCook(String title,double price){this.title = title;this.price = price;}@Overridepublic String toString() {return "书名:"+this.title+",价格:"+this.price;}@Overridepublic int compareTo(BookCook o) {if(this.price > o.price){return 1;}else if(this.price < o.price){return -1;}else{return 0;}}}
--结束END--
本文标题: Java中的比较器有哪些
本文链接: https://lsjlt.com/news/222698.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0