全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.text.CollationKey

java.lang.Object
   |
   +----java.text.CollationKey

public final class CollationKey
extends Object
CollationKeyは、特定の Collatorオブジェクトのルールのもとにある Stringを表します。2つの CollationKeyを比較すると、それらが表す Stringの相対順序が返されます。CollationKeyを使って Stringを比較する方が一般に Collator.compareよりも高速です。したがって、複数の Stringを何回も比較する場合(たとえば、Stringのリストをソートする場合)には、CollationKeyを使う方が効率的です。

CollationKeyを直接作成することはできません。それらを生成するには、Collator.getCollationKeyを呼び出す必要があります。CollationKeyを比較する場合、それらは同じ Collatorオブジェクトから生成しなければなりません。

StringCollationKeyを生成するためには、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

Method Index

 o compareTo(CollationKey)
この CollationKeyをターゲットの CollationKeyを比較します。
 o equals(Object)
この CollationKeyとターゲットの CollationKeyが等しいかどうかを比較します。
 o getSourceString()
この CollationKeyが表す Stringを返します。
 o hashCode()
この CollationKeyのハッシュコードを生成します。
 o toByteArray()
CollationKeyをビット列に変換します。

Methods

 o compareTo
  public int compareTo(CollationKey target)
この CollationKeyをターゲットの CollationKeyと比較します。これらのキーを作成した Collatorオブジェクトの照合ルールが適用されます。注:: 異なる Collatorで作成した CollationKeyを比較することはできません。

パラメータ:
target - ターゲットの CollationKey
返り値:
整数値を返します。これがターゲットより小さければ、値はゼロより小さい。これとターゲットが等しいければ、値はゼロ。これがターゲットより大きければ、値はゼロより大きい。
参照:
compare
 o equals
  public boolean equals(Object target)
この CollationKeyとターゲットの CollationKeyが等しいかどうかを比較します。これらのキーを作成した Collatorオブジェクトの照合ルールが適用されます。注:: 異なる Collatorで作成した CollationKeyを比較することはできません。

パラメータ:
target - 比較する相手の CollationKey
返り値:
2つのオブジェクトが等しければ、真を、等しくなければ、偽を返します。
オーバーライド:
クラス Objectequals
 o hashCode
  public int hashCode()
この CollationKeyのハッシュコードを作成します。ハッシュ値は、キー自体から計算されるのであって、そのキーが作成された Stringから作成されるのではありません。したがって、xと yが CollationKeyの場合、x.equals(y)が真なら、x.hashCode(x) == y.hashCode()です。これによって、ハッシュテーブルで言語に依存する比較を行うことができます。例については、CollatinKeyクラスの説明を参照してください。

返り値:
文字列の照合順序に基づくハッシュ値
オーバーライド:
クラス ObjecthashCode
 o getSourceString
  public String getSourceString()
この CollationKeyが表す Stringを返します。

 o toByteArray
  public byte[] toByteArray()
CollationKeyをビット列に変換します。2つの CollationKeyが正しく比較できるのであれば、これらの配列のそれぞれに対するバイト配列を比較しても同じ結果が得られます。バイト配列では、最も大きなバイトが最初にあります。


全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス