JavaでComparableを拡張する

Haider Ali 2023年10月12日
JavaでComparableを拡張する

このガイドでは、Java での Extends Comparable Interface について学習します。Comparable<T> と書かれています。これは、Java の多くのクラスによって実装されるインターフェースです。その側面についてもっと学びましょう。

Java での ExtendsComparable<T> インターフェースの実装

このインターフェースには、compareTo(Object o) という 1つのメソッドしかありません。このメソッドは、オブジェクトを注文の指定されたオブジェクトと比較します。

オブジェクトが指定よりも小さい場合は、負の整数を返します。オブジェクトと指定されたオブジェクトが等しい場合はゼロを返します。

同様に、オブジェクトが指定されたオブジェクトより大きい場合は、正の整数を返します。

クラスは Java の Java インターフェースを拡張できないことに注意してください。

インターフェイスは、インターフェイスのみを拡張できます。Java クラスは、Java クラスのみを拡張できます。

Comparable<T> は Java のインターフェースであるため、Comparable インターフェースを拡張するカスタムインターフェースを作成する必要があります。カスタムクラスは、カスタムインターフェイスを実装します。

public class Main {
  public static void main(String[] args) {
    Student s1 = new Student("Bill Gates");
    Student s2 = new Student("James");

    int res = s1.compareTo(s2);
    // comaprison of name of two students using iherited and extended method of
    // compareable.

    System.out.println(res);
  }
}
interface CustomComparable extends Comparable<Student> {
  // Custom interface which extends Comparable.
  // So CustomComparable have inherited method Compareto(Object o)
  public String getName();
}
class Student implements CustomComparable {
  // calss student implements CustomCompareable
  private String name; // String variable
  Student(String s) {
    this.name = s;
  }

  public int compareTo(Student other) { // overiding super method........... .
    return this.name.compareTo(other.getName());
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }
}

出力:

-8

カスタムコンパレータクラスを実装する 2つの学生クラスオブジェクトを作成し、実際の Comparable<T> を拡張するだけです。したがって、ここでこの compareTo() メソッドを使用する方法は次のとおりです。

著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

関連記事 - Java Interface