Comparable是自己和自己比,可以看作是自营性质的比较器。从词根上分析,Comparable以-able结尾,表示它有自身具备某种能力的性质,表明Comparable对象本身是可以与同类型进行比较的,它的比较方法是compareTo。 后者Comparator是第三方比较器,可以看作是平台性质的比较器。从词根上分析,Comparator以-or结尾,表明自身是比较器的...
Comparable 接口 Comparable 是一个内置接口,用于定义对象的自然排序。如果一个类实现了 Comparable 接口,那么该类的实例就可以直接进行排序。接口中的方法如下:compareTo 方法:比较当前对象和传入对象。如果:返回负数:当前对象小于传入对象。返回零:两者相等。返回正数:当前对象大于传入对象。Comparator 接口 Comparato...
1.Comparator是java.util中的一个比较的接口。 2. 如果我们想要控制某个类的次序,而这个类并没有继承Comparable接口,那么我们就可以使用Comparator接口。 3. 比较的规则:大致和上面的规则相同,不过也有不同的地方,详情请看下面的代码。 4.源代码: packagejava.util;publicinterfaceComparator<T>{intcompare(T o1, ...
Comparable 接口 Comparable 是一个内置接口,用于定义对象的自然排序。如果一个类实现了 Comparable 接口,那么该类的实例就可以直接进行排序。接口中的方法如下: compareTo 方法:比较当前对象和传入对象。如果: 返回负数:当前对象小于传入对象。 返回零:两者相等。 返回正数:当前对象大于传入对象。 Comparator 接口 Compara...
Comparator接口的核心方法是compare(T o1, T o2),它接收两个参数,返回的结果也和Comparable接口一样: 如果o1大于o2,返回正数 如果o1等于o2,返回0 如果o1小于o2,返回负数 与Comparable不同,Comparator可以用于实现多种排序方式,比如按name排序,按age排序等等。
,它们默认实现了Comparable 接口,实现了 compareTo 方法,我们可以直接使用。 而对于一些自定义类,它们可能在不同情况下需要实现不同的比较策略,我们可以新创建 Comparator 接口,然后使用特定的 Comparator 实现进行比较。 这就是 Comparable 和 Comparator 的区别。
* 一个类本身实现了Comparable比较器,就意味着它本身支持排序;若它本身没实现Comparable,也可以通过外部比较器Comparator进行排序。 */ public class CompareComparatorAndComparableTest{ public static void main(String[] args) { // 新建ArrayList(动态数组) ArrayList<Person> list = new ArrayList<Person>(); ...
定制排序:java.util.Comparator 使用背景: 当元素没有实现java.lang.Comparable接口而又不方便改代码,或者是实现了Comparable接口,也指定了两个对象的比较大小的规则,但此时不想按照预定义的方法比较大小。 所以又增加了一个java.util.Comparator接口。强行对多个对象进行整体排序的比较。 重写compare(Object o1,Object o2...
Comparable 和 Comparator 是 Java 的两个接口,从名字上我们就能够读出来它们俩的相似性:以某种方式来比较两个对象。但它们之间到底有什么区别呢?请随我来,打怪进阶喽! 01、Comparable Comparable 接口的定义非常简单,源码如下所示。 public interface Comparable<T> { int compareTo(T t);}复制代码 ...
Comparable和Comparator在Java中的区别如下:包位置:Comparable接口位于java.lang包下。Comparator接口则位于java.util包中。方法定义:Comparable接口定义了compareTo方法,用于比较对象之间的大小关系。Comparator接口定义了compare方法,也用于对比对象进行排序,但更通用,可以为不同类型的对象提供比较逻辑。比较...