javaのcompareメソッドの使い方は
Javaでは、Comparableインターフェースで定義されたcompareメソッドが、オブジェクトの順序を比較するために使用されます。
compareメソッドを使用するためには、比較するオブジェクトがComparableインタフェースを実装している必要があります。このインタフェースには、オブジェクト間の比較ルールを定義するために使用されるcompareToメソッドが定義されています。
文字列の比較例を以下に示します。
String str1 = "abc";
String str2 = "def";
int result = str1.compareTo(str2);
この例では、compareToメソッドはstr1とstr2を比較した結果を表す整数を返します。返り値によって、以下を判断できます。
- 返り値が負の場合、str1はstr2より小さいことを意味します。
- 返り値がゼロならstr1はstr2と同じです。
- 返り値が正の数字であれば, str1はstr2より大きい。
文字列以外にも、Comparableインターフェイスを実装していれば、ほかの型のオブジェクトも比較できます。整数、浮動小数点数、日付などが比較できます。
他の方法では、Comparatorインターフェースを使って比較演算を行うこともできます。ComparatorインターフェースはJava 8で導入されたインターフェースです。Comparableインターフェースは、比較対象のオブジェクトに依存して比較ルールを定義しますが、Comparatorインターフェースは比較対象のオブジェクトとは独立に比較ルールを定義することができます。
Comparatorインターフェースを使って長さで文字列を比較する例を次に示します。
String str1 = "abc";
String str2 = "def";
Comparator<String> comparator = Comparator.comparing(String::length);
int result = comparator.compare(str1, str2);
この例では、comparingメソッドは比較する属性を抽出する関数を受け取ります。ここでのString::lengthメソッドは文字列の長さを抽出する比較属性として使用されています。
str1とstr2の長さはcompareメソッドを用いて比較できます。返り値の違いに応じて、上記と同じ比較結果が得られます。
比較メソッドは、Comparableインターフェイスを実装したり、Comparatorインターフェイスを使って比較ルールを定義することで、オブジェクトの順序付け比較に使用できます。