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 int
compareTo
(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のバイト配列表現
-