Skip to content

Java Comparable和Comparator的区别

About 390 wordsAbout 1 min

javaComparableComparator

2025-03-04

今天在写算法题的时候,遇到了需要给Map<Integer, Integer>的容器排序的情况,故此来学习回顾一下。

Java Comparable和Comparator的区别

一、Comparable

源码:

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

Comparable是接口,类实现Comparable接口的话,需要重写compareTo()方法。

二、Comparator

源码:

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

Comparator也是接口,需要实现compare(o1, o2)方法。

两者之间主要的区别:

  • 一个类实现Comparable接口,意味着该类的对象可以直接进行比较,但是比较的方式只有一种(就是类中定义的那种),很单一
  • 一个类如果要保持原样,又需要进行不同方式的比较,就可以定制比较器(实现Comparator接口)
  • Comparable接口在java.lang包下,而Comparator接口在java.util包下。

三、测试代码

Changelog

Last Updated: View All Changelog
  • feat(wiki): hammeSpoon: 复制出来的文件需要重新生成永链

    On 3/27/25

求求了,快滚去学习!!!

求求了求求了,快去学习吧!

【题单】贪心算法

不知道方向的时候,可以多看看书,书会给你指明下一步该干什么,加油!