|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectts.util.GeneralComparator
public class GeneralComparator
一般的なオブジェクト比較クラス。
Collections#sort(List)
メソッドを利用する際、引数のリストの要素がComparableを継承していないといけない(そうでない場合はメソッド内で
ClassCastException がスローされる。
JDK 1.5以降では、リストの要素型に Comparable
を継承したクラスを指定しないと、コンパイル・エラーになる)。
これに対して、
Collections#sort(List,Comparator)メソッドは、引数の
Comparatorオブジェクトが判定可能であれば、
リストの要素がComparableを継承していなくても
問題なく処理される。
このクラスは、
Comparableを継承していない要素を含むリスト
でもソートに使えるような一般的な Comparator
クラスである。
リストの要素がComparableを継承している場合は
Comparable#compareTo
メソッドを使って比較し、
Comparableを継承していない場合や
Comparable#compareTo
メソッドで例外(ClassCastException等))
がスローされた場合は、toString()メソッド
を使って両オブジェクトを文字列化した値を比較する。
両オブジェクトを文字列化した値を比較して同じと判定された場合は、さらに
両オブジェクトのクラス名を比較する。
| コンストラクタの概要 | |
|---|---|
GeneralComparator()
デフォルト・コンストラクタ。 |
|
| メソッドの概要 | |
|---|---|
int |
compare(java.lang.Object o1,
java.lang.Object o2)
指定された2つのオブジェクトの大小関係を比較する。 |
boolean |
equals(java.lang.Object obj)
引数のオブジェクトがこのオブジェクトに等しいかどうかを判定する。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public GeneralComparator()
| メソッドの詳細 |
|---|
public int compare(java.lang.Object o1,
java.lang.Object o2)
Comparableを継承している
場合は、そのComparable#compareToメソッドを使って比較する。
Comparableを継承していない場合や、
Comparable#compareToメソッドで例外(ClassCastException等))がスローされた場合は、両方のオブジェクトを
toString()メソッドで文字列化して比較
する。
両オブジェクトを文字列化した値を比較して同じと判定された場合は、さらに
両オブジェクトのクラス名を比較する。
java.util.Comparator<java.lang.Object> 内の compareo1 - 比較対象のオブジェクト1。o2 - 比較対象のオブジェクト2。
public boolean equals(java.lang.Object obj)
java.util.Comparator<java.lang.Object> 内の equalsjava.lang.Object 内の equalsobj - 比較対象のオブジェクト。
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||