,它们默认实现了Comparable 接口,实现了 compareTo 方法,我们可以直接使用。 而对于一些自定义类,它们可能在不同情况下需要实现不同的比较策略,我们可以新创建 Comparator 接口,然后使用特定的 Comparator 实现进行比较。 这就是 Comparable 和 Comparator 的区别。
1.Comparator是java.util中的一个比较的接口。 2. 如果我们想要控制某个类的次序,而这个类并没有继承Comparable接口,那么我们就可以使用Comparator接口。 3. 比较的规则:大致和上面的规则相同,不过也有不同的地方,详情请看下面的代码。 4.源代码: packagejava.util;publicinterfaceComparator<T>{intcompare(T o1, ...
对Comparable和Comparator的使用示例 1.Comparable: 实现Comparable: publicclasstestimplementsComparable<test>{publicintfirst;publicintsecond;publictest(intfirst,intsecond){this.first=first;this.second=second; }@OverridepublicintcompareTo(test o){if(this.first<o.first)return-1;if(this.first==o.first)ret...
Comparable 是一个内置接口,用于定义对象的自然排序。如果一个类实现了 Comparable 接口,那么该类的实例就可以直接进行排序。接口中的方法如下:compareTo 方法:比较当前对象和传入对象。如果:返回负数:当前对象小于传入对象。返回零:两者相等。返回正数:当前对象大于传入对象。Comparator 接口 Comparator 是一个策略...
定制排序:java.util.Comparator 使用背景: 当元素没有实现java.lang.Comparable接口而又不方便改代码,或者是实现了Comparable接口,也指定了两个对象的比较大小的规则,但此时不想按照预定义的方法比较大小。 所以又增加了一个java.util.Comparator接口。强行对多个对象进行整体排序的比较。 重写compare(Object o1,Object o2...
Comparable 是一个内置接口,用于定义对象的自然排序。如果一个类实现了 Comparable 接口,那么该类的实例就可以直接进行排序。接口中的方法如下: compareTo 方法:比较当前对象和传入对象。如果: 返回负数:当前对象小于传入对象。 返回零:两者相等。 返回正数:当前对象大于传入对象。 Comparator 接口 Comparator 是一个策略...
我们知道,要使类的对象支持排序,类需要实现Comparable接口。而要在不修改类本身的情况下定义多种排序规则,则可以使用Comparator接口。所以两者均用于排序,但使用方式不同。 1 Comparable 接口 Comparable接口定义如下: package java.lang; public interface Comparable<T> { ...
package java.lang; import java.util.*; public interface Comparable<T> { public int compareTo(T o); } 说明:假设我们通过 x.compareTo(y) 来“比较x和y的大小”。若返回“负数”,意味着“x比y小”;返回“零”,意味着“x等于y”;返回“正数”,意味着“x大于y”。Comparator 简介 Comparator 是...
Comparable 和 Comparator 是 Java 的两个接口,从名字上我们就能够读出来它们俩的相似性:以某种方式来比较两个对象。但它们之间到底有什么区别呢?请随我来,打怪进阶喽! 01、Comparable Comparable 接口的定义非常简单,源码如下所示。 public interface Comparable<T> { int compareTo(T t);}复制代码 ...
我们知道,要使类的对象支持排序,类需要实现Comparable接口。而要在不修改类本身的情况下定义多种排序规则,则可以使用Comparator接口。所以两者均用于排序,但使用方式不同。 1 Comparable 接口 Comparable接口定义如下: packagejava.lang; publicinterfaceComparable<T>{ ...