Comparable和Comparator接口是干什么的,其区别

题目来源:https://zhuanlan.zhihu.com/p/86536581
java面试清单
**java基础 **
Comparable和Comparator接口是干什么的,其区别

Comparable接口
从Comparable接口中的代码,可以包含一个内部函数compareTo(),因此但凡是继承了接口的类,都需要实现这个方法。
Comparable对这个接口的每一个类对象都强加了一个整体排序。这个排序被称为类的自然排序,类的这个compareTo()就被称为其自然比较方法。

package java.lang;
import java.util.*;
 
public interface Comparable<T> {
    public int compareTo(T o);
}

Collection.sort和Arrays.sort()可以自动对实现这个接口的对象进行列表或者数组排序。
Comparator
Comparator是一个比较器接口,被比较的类不需要直接实现它。

    package java.util;
    public interface Comparator<T> {
     
        int compare(T o1, T o2);
        boolean equals(Object obj);
    }

Comparable和Comparator接口的区别
1 comparalbe在java.lang
comparator在java.util下
2 comparable实现通过在集合内部实现该结构的compareTo()方法实现的排序
comparator是在集合外部实现的排序,是一个专用的比较器。当这个对象不支持自比较或者自比较函数不满足要求时,可以写一个比较器来完成两个对象之间大小的比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值