1. ホーム
  2. java

[解決済み] なぜJavaのクラスはcomparableを実装しなければならないのか?

2022-05-13 07:40:25

疑問点

なぜJavaは Comparable が使われているのでしょうか? なぜ、誰かが Comparable を実装するのでしょうか?コンパラブルな実装が必要な実例を教えてください。

どのように解決するのですか?

実際のサンプルです。なお String も実装されていることに注意してください。 Comparable .

class Author implements Comparable<Author>{
    String firstName;
    String lastName;

    @Override
    public int compareTo(Author other){
        // compareTo should return < 0 if this is supposed to be
        // less than other, > 0 if this is supposed to be greater than 
        // other and 0 if they are supposed to be equal
        int last = this.lastName.compareTo(other.lastName);
        return last == 0 ? this.firstName.compareTo(other.firstName) : last;
    }
}

後に

/**
 * List the authors. Sort them by name so it will look good.
 */
public List<Author> listAuthors(){
    List<Author> authors = readAuthorsFromFileOrSomething();
    Collections.sort(authors);
    return authors;
}

/**
 * List unique authors. Sort them by name so it will look good.
 */
public SortedSet<Author> listUniqueAuthors(){
    List<Author> authors = readAuthorsFromFileOrSomething();
    return new TreeSet<Author>(authors);
}