首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Comparable和Comparator

出处comparable 接⼝实际上是出⾃ java.lang 包 它有⼀个 compareTo(Object obj) ⽅法进行排序comparator 接⼝实际上是出⾃ java.util 包它有⼀...(实体类实现)Comparator 是定制排序。(无法修改实体类时,直接在调用方创建)总结Java提供了只包含一个compareTo()方法的Comparable接口。这个方法可以个给两个对象排序。...Java提供了包含compare()和equals()两个方法的Comparator接口。compare()方法用来给两个输入参数排序,返回负数,0,正数表明第一个参数是小于,等于,大于第二个参数。...equals()方法需要一个对象作为参数,它用来决定输入参数是否和comparator相等。...只有当输入参数也是一个comparator并且输入参数和当前comparator的排序结果是相同的时候,这个方法才返回true。

35320

Java中Comparable和Comparator

简介   Comparator是比较接口,:如果需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口),那么就可以建立一个“该类的比较器”来进行排序,这个“比较器”只需要实现Comparator...也就是说,可以通过实现Comparator来新建一个比较器,然后通过这个比较器对类进行排序。...我们可以新建一个类,让其实现Comparator接口,从而构造一个“比较器"。...而Comparator是比较器,若需要控制某个类的次序,可以建立一个“该类的比较器”来进行排序。Comparable相当于“内部比较器”,而Comparator相当于“外部比较器”。   ...用Comparator 的好处是不需要修改源代码, 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了, 并且在Comparator 里面用户可以自己实现复杂的可以通用的逻辑

37620

Comparable和Comparator兄弟情深?

Comparable和Comparator乍一看像兄弟俩。但是,虽然长得像,使用上却是有很多区别。...一、Comparator 做过集合排序的童鞋应该知道,可以使用Collections.sort方法对集合进行排序。我们点进去Collections类源码里边,会发现sort有两个重载方法。...一个只需传一个List参数,另一个需要传两个参数:List和Comparator。 其实,这两种方法就对应了Comparable和Comparator的两种用法。...我经常使用带两个参数的方法,即需要实现Comparator接口。 使用步骤: 1. 定义待比较的实体类。 2. 定义一个比较器,实现Comparator接口。 3. 重写compare方法。...它们出自不同的包,Comparator在 java.util 包下,Comparable在 java.lang 包下。 2.

25711

Comparable 和 Comparator的理解

的解释 Comparator 相当于一个比较器,作用和Comparable类似,也是使用Collections.sort() 和 Arrays.sort()来进行排序,也可以对SortedMap 和...TreeSet 和 TreeMap的数据结构底层也是使用Comparator 来实现。不同于Comparable ,比较器可以任选地允许比较null参数,同时保持要求等价关系。...Comparable 和 Comparator 的对比 1、Comparable 更像是自然排序 2、Comparator 更像是定制排序 同时存在时采用 Comparator(定制排序)的规则进行比较...而对于一些自定义类,它们可能在不同情况下需要实现不同的比较策略,我们可以新创建 Comparator 接口,然后使用特定的 Comparator 实现进行比较。...参考: Java 中 Comparable 和 Comparator 比较 https://zhuanlan.zhihu.com/p/24081048 Java 解惑:Comparable 和 Comparator

54930

Comparable和Comparator的区别

前面我们已经学习过Comparator和Comparable接口的使用,下面来总结一下二者的区别. 1、Comparator接口位于java.util包下,而Comparable接口位于java.lang...包下 2、对于Comparator接口,可以看到它的compare(O方法的参数是两个对象,比如我们队Cat类进行比较,那么这里就是两个要比较的Ca类的对象,所以可以有一个单独的类实现Comparator...因此,如果使用Comparator接口,那么要比较的类和实现Comparator接口的类可以分开,如果使用Comparable接口,那么要比较的类就要实现Comparable:接口才可以 3、关于应用场景...那么我们还希望通过age进行排序,这时不希望修改Cat类,那此时就需要使用Comparator接口了 因此,Comparable:接口可以作为实现类的默认排序算法,Comparator接口则用于一个类的扩展排序

22230
领券