JavaのComparableとComparatorの違いは何ですか

目次:

Anonim

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、ここから入手できます。

JavaのComparableとComparatorの違いは何ですか