|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--java.text.CollationKey
CollationKey は、特定の Collator オブジェクトのルールのもとにある String を表します。2 つの CollationKey を比較すると、それらが表す String の相対順序が返されます。CollationKey を使って String を比較する方が一般に Collator.compare よりも高速です。したがって、複数の String を何回も比較する場合 (たとえば、String のリストをソートする場合) には、CollationKey を使う方が効率的です。
CollationKey を直接作成することはできません。それらを生成するには、Collator.getCollationKey を呼び出す必要があります。CollationKey を比較する場合、それらは同じ Collator オブジェクトから生成しなければなりません。
String の CollationKey を生成するためには、String 全体を調べ、それを、ビット単位で比較できるビット列に変換する必要があります。こうすると、キーが生成されたあとで、比較が高速に行われます。キーを生成するコストは、String を何回も比較する必要がある場合には、高速な比較によって埋め合せることができます。一方、比較の結果は、それぞれの String の最初の 2 文字で決まることがよくあります。Collator.compare では、必要な文字数だけが比較されるので、単一の比較ではこの方が高速です。
次の例は、CollationKey を使って、String のリストをソートする場合を示したものです。
// Create an array of CollationKeys for the Strings to be sorted.
Collator myCollator = Collator.getInstance();
CollationKey[] keys = new CollationKey[3];
keys[0] = myCollator.getCollationKey("Tom");
keys[1] = myCollator.getCollationKey("Dick");
keys[2] = myCollator.getCollationKey("Harry");
sort( keys );
//...
// Inside body of sort routine, compare keys this way
if( keys[i].compareTo( keys[j] ) > 0 )
// swap keys[i] and keys[j]
//...
// Finally, when we've returned from sort.
System.out.println( keys[0].getSourceString() );
System.out.println( keys[1].getSourceString() );
System.out.println( keys[2].getSourceString() );
Collator,
RuleBasedCollator| メソッドの概要 | |
int |
compareTo(CollationKey target)
この CollationKey をターゲットの CollationKey と比較します。 |
int |
compareTo(Object o)
CollationKey と、指定された Object の順序を比較します。 |
boolean |
equals(Object target)
CollationKey とターゲットの CollationKey が等しいかどうかを比較します。 |
String |
getSourceString()
この CollationKey が表す String を返します。 |
int |
hashCode()
CollationKey のハッシュコードを作成します。 |
byte[] |
toByteArray()
CollationKey をビット列に変換します。 |
| クラス java.lang.Object から継承したメソッド |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| メソッドの詳細 |
public int compareTo(CollationKey target)
target - ターゲットの CollationKeyCollator.compare(java.lang.String, java.lang.String)public int compareTo(Object o)
Comparable 内の compareToo - 比較対象の ObjectClassCastException - 指定された Object が CollationKey ではない場合Comparablepublic boolean equals(Object target)
Object 内の equalstarget - 比較対象の CollationKeypublic int hashCode()
Object 内の hashCodepublic String getSourceString()
public byte[] toByteArray()
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.