,它们默认实现了Comparable 接口,实现了 compareTo 方法,我们可以直接使用。 而对于一些自定义类,它们可能在不同情况下需要实现不同的比较策略,我们可以新创建 Comparator 接口,然后使用特定的 Comparator 实现进行比较。 这就是 Comparable 和 Comparator 的区别。 本文参与 腾讯云自媒体同步曝光计划
* Person实现了Comparable接口,这意味着Person本身支持排序 */ private static class Person implements Comparable<Person>{ int age; String name; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return...
1.Comparator是java.util中的一个比较的接口。 2. 如果我们想要控制某个类的次序,而这个类并没有继承Comparable接口,那么我们就可以使用Comparator接口。 3. 比较的规则:大致和上面的规则相同,不过也有不同的地方,详情请看下面的代码。 4.源代码: packagejava.util;publicinterfaceComparator<T>{intcompare(T o1, ...
Comparable 是一个内置接口,用于定义对象的自然排序。如果一个类实现了 Comparable 接口,那么该类的实例就可以直接进行排序。接口中的方法如下:compareTo 方法:比较当前对象和传入对象。如果:返回负数:当前对象小于传入对象。返回零:两者相等。返回正数:当前对象大于传入对象。Comparator 接口 Comparator 是一个策略...
Comparator接口的核心方法是compare(T o1, T o2),它接收两个参数,返回的结果也和Comparable接口一样: 如果o1大于o2,返回正数 如果o1等于o2,返回0 如果o1小于o2,返回负数 与Comparable不同,Comparator可以用于实现多种排序方式,比如按name排序,按age排序等等。
1.2 Comparator大小 Comparator是比较接口,我们如果需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口),那么我们就可以建立一个该类的比较器来进行排序,这个比较器只需要实现Comparator接口即可。也就是说,我们可以通过实现Comparator来新建一个比较器,然后通过这个比较器对类进行排序。该接口定义如下:...
Comparable 接口 Comparable 是一个内置接口,用于定义对象的自然排序。如果一个类实现了 Comparable 接口,那么该类的实例就可以直接进行排序。接口中的方法如下: compareTo 方法:比较当前对象和传入对象。如果: 返回负数:当前对象小于传入对象。 返回零:两者相等。 返回正数:当前对象大于传入对象。 Comparator 接口 Compara...
定制排序:java.util.Comparator 使用背景: 当元素没有实现java.lang.Comparable接口而又不方便改代码,或者是实现了Comparable接口,也指定了两个对象的比较大小的规则,但此时不想按照预定义的方法比较大小。 所以又增加了一个java.util.Comparator接口。强行对多个对象进行整体排序的比较。 重写compare(Object o1,Object o2...
Comparator和Comparable的区别如下: Comparable用在对象本身,说明这个对象是可以被比较的,也就是说可以被排序的。例如:String和Integer之所以可以比较大小,是因为它们都实现了Comparable接口,并实现了compareTo()方法。 Comparator用在对象外面,相当于定义了一套排序算法来排序。
java对象对比之comparable和comparator的区别 一、元素的比较 1.1 基本类型的比较 java中的基本类型的对象是可以进行比较的 如 public static void main(String[] args){ int a = 10; int b = 20; System.out.println(a>b); System.out.println(a==b); ...