JavaTM 2 Platform
Standard Ed. 5.0

java.text
クラス CollationKey

java.lang.Object
  上位を拡張 java.text.CollationKey
すべての実装されたインタフェース:
Comparable<CollationKey>

public final class CollationKey
extends Object
implements Comparable<CollationKey>

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

メソッドの概要
 int compareTo(CollationKey target)
          この CollationKey をターゲットの CollationKey と比較します。
 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
 

メソッドの詳細

compareTo

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

定義:
インタフェース Comparable<CollationKey> 内の compareTo
パラメータ:
target - ターゲットの CollationKey
戻り値:
整数値。これがターゲットより小さければ、値はゼロより小さい。これがターゲットと等しければ、値はゼロ。これがターゲットより大きければ、値はゼロより大きい
関連項目:
Collator.compare(java.lang.String, java.lang.String)

equals

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

オーバーライド:
クラス Object 内の equals
パラメータ:
target - 比較対象の CollationKey
戻り値:
2 つのオブジェクトが等しい場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
CollationKey のハッシュコードを作成します。ハッシュ値は、キー自体から計算されるのであって、そのキーが作成された String から作成されるのではありません。したがって、x と y が CollationKey の場合、x.equals(y) が true であれば、x.hashCode(x) == y.hashCode() です。これによって、ハッシュテーブルで言語に依存する比較を行うことができます。例については、CollatinKey クラスの説明を参照してください。

オーバーライド:
クラス Object 内の hashCode
戻り値:
文字列の照合順序に基づくハッシュ値
関連項目:
Object.equals(java.lang.Object), Hashtable

getSourceString

public String getSourceString()
この CollationKey が表す String を返します。


toByteArray

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


JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。