クラスCollationKey
java.lang.Object
java.text.CollationKey
- すべての実装されたインタフェース:
Comparable<CollationKey>
public abstract 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オブジェクトから生成しなければいけません。
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());
- 導入されたバージョン:
- 1.1
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract intcompareTo(CollationKey target) このCollationKeyをターゲットのCollationKeyと比較します。このCollationKeyが表すStringを返します。abstract byte[]CollationKeyをビット列に変換します。
-
コンストラクタの詳細
-
CollationKey
protected CollationKey(String source) CollationKeyのコンストラクタです。- パラメータ:
source- ソース文字列- スロー:
NullPointerException-sourceがnullである場合- 導入されたバージョン:
- 1.6
-
-
メソッドの詳細
-
compareTo
public abstract int compareTo(CollationKey target) このCollationKeyをターゲットのCollationKeyと比較します。 これらのキーを作成したCollatorオブジェクトの照合ルールが適用されます。 ノート: 異なるCollatorで作成したCollationKeyは比較できません。- 定義:
compareTo、インタフェースComparable<CollationKey>- パラメータ:
target- ターゲットのCollationKey- 戻り値:
- 整数値。 これがターゲットより小さければ、値はゼロより小さい。これがターゲットと等しければ、値はゼロ。これがターゲットより大きければ、値はゼロより大きい
- 関連項目:
-
getSourceString
-
toByteArray
public abstract byte[] toByteArray()CollationKeyをビット列に変換します。 2つのCollationKeyが正しく比較できる場合は、これらの配列のそれぞれに対するバイト配列を比較しても同じ結果が得られます。 バイト配列では、もっとも大きなバイトが最初にあります。- 戻り値:
- CollationKeyのバイト配列表現
-