>Comparable 是内部比较器,定义了类的自然排序,规则唯一且固定。Comparator 是外部比较器,用于实现定制排序或多种排序规则,无需修改类本身,更加灵活。 这是一个非常经典且重要的 Java 面试题。我们来详细地解释一下 和 接口的区别。 一句话总结: :内部比较器 或 自然排序。一个类实现了 接口,意味着这个类的实例对象“天生就具备”可比较性,可以指定一个默认的排序规则。 :外部比较器 或 定制排序。如果一个类的默认排序规则不符合你的需求,或者这个类本身没有实现 接口(例如第三方库的类),你可以创建一个 的实现来定义“外部”的、特定的排序规则。 --- 详细对比 为了更清晰地理解,我们从多个维度进行对比。 | 特性 | | | | :--- | :--- | :--- | | 目的 | 定义对象的 自然排序 (Natural Ordering) | 定义对象的 定制排序 (Custom Ordering) 或 临时排序 | | 接口与方法 | | | | 实现位置 | 在 需要排序的类内部 实现该接口 | 在一个 单独的类 中实现该接口,或者使用 匿名内部类/La...