JavaのComparableとComparatorの違いは何ですか
目次:
NS 主な違い Javaの比較対象と比較対象の間は コンパレータは単一の要素に基づいてコレクションをソートし、コンパレータは複数の要素に基づいてコレクションをソートします。
Javaは、Web、デスクトップ、モバイル、高性能分散システムなどのさまざまなアプリケーションの構築に役立つ、高レベルの汎用プログラミング言語です。さらに、Javaの主な利点の1つは、オブジェクト指向プログラミング(OOP)をサポートしていることです。このパラダイムでは、クラスとオブジェクトを作成できます。クラスは、オブジェクトを作成するための青写真です。さらに、動作を示すためのプロパティとメソッドを説明するデータメンバーがあります。さらに、Javaは、クラスのデータメンバーを使用してオブジェクトをソートするためのさまざまなインターフェイスを提供します。コンパレータとコンパレータはその2つです。
Comparable、Comparator、Interface、Java
Javaで比較できるもの
同等のインターフェースは、オブジェクトを別のオブジェクトと比較するのに役立ちます。このクラスは、インスタンスを比較するためにjava.lang.Comparableインターフェースを実装します。最初のステップは、クラスとの比較可能なインターフェイスを実装してから、ComparableインターフェイスのメソッドcompareTo()をオーバーライドすることです。
図1:学生クラス
図2:Comparableのメインプログラム
上記のプログラムでは、StudentはComparableインターフェースを実装するクラスです。最も重要なことは、Studentクラスには、id、name、marksの3つのデータメンバーがあります。コンストラクターは、データメンバーに初期値を提供するのに役立ちます。さらに、このクラスはcompareToメソッドをオーバーライドします。 Studentオブジェクトがこのメソッドに渡されます。したがって、このメソッドは、比較に応じて1、-1、または0を返します。
メインプログラムでは、「al」はArrayListのオブジェクトです。プログラマーは、StudentオブジェクトをこのArrayListに挿入できます。 sortメソッドは、要素をソートします。最後に、「forループ」はコンソールに要素を表示します。
コンパレータJavaとは
コンパレータインターフェイスは、さまざまなコンパレータを使用してリストの要素を並べ替えるために使用されます。プログラム例は以下のとおりです。
図3:名前とマークのコンパレータ
図4:コンパレータのメインプログラム
上記のプログラムでは、StudentはComparableインターフェースを実装するクラスです。さらに、学生クラスには、id、name、marksの3つのデータメンバーがあります。コンストラクターは、データメンバーに初期値を提供するのに役立ちます。 MarkComparatorクラスは、Comparatorインターフェイスを実装します。したがって、2つのStudentオブジェクトを受け入れるcompareメソッドをオーバーライドします。比較によると、compareメソッドは1、-1、または0を返します。
同様に、Comparatorインターフェイスを実装するAgeComparatorと呼ばれる別のクラスがあります。また、compareメソッドをオーバーライドします。また、このメソッドは2つの学生オブジェクトを取得します。さらに、compareメソッドは、比較に従って整数を返します。
メインプログラムでは、「al」はArrayListのオブジェクトです。プログラマーは、34行目、35行目、および36行目と同様に、StudentオブジェクトをこのArrayListに挿入できます。さらに、38行目では、要素が名前に従って比較されます。 「forループ」は、画面に要素を表示します。 43行目では、マークに従って要素が比較されています。次に、次の「forループ」で要素が画面に表示されます。
JavaでのComparableとComparatorの違い
意味
Comparableは、単一のソートシーケンスを提供するユーザー定義クラスのオブジェクトを順序付けるために使用されるJavaのインターフェースであり、Comparatorは、複数のソートシーケンスを提供するユーザー定義クラスのオブジェクトを順序付けるために使用されるJavaのインターフェースです。したがって、これはJavaのComparableとComparatorの主な違いを説明しています。
要素を並べ替える
さらに、Comparableは要素をソートするためのcompareTo()メソッドを提供しますが、Comparatorは要素をソートするためのcompare()メソッドを提供します。したがって、これはJavaのComparableとComparatorの違いでもあります。
ソートする構文
JavaのComparableとComparatorのもう1つの違いは、Comparableでソートする構文がCollections.sort(List)であるのに対し、Comparatorでソートする構文はCollections.sort(List、Comparator)であるということです。
結論
簡単に言うと、ComparableとComparatorは、クラスのデータメンバーを使用してオブジェクトを並べ替えるための2つのインターフェイスです。 JavaのComparableとComparatorの主な違いは、Comparableは単一の要素に基づいてコレクションをソートするのに対し、Comparatorは複数の要素に基づいてコレクションをソートすることです。
リファレンス:
1.「JavaComparable–Javatpoint」。 Www.javatpoint.com、ここから入手可能2。 「Javaコンパレータ–Javatpoint。」 Www.javatpoint.com、ここから入手できます。