- 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
- 関連項目:
Collator
、RuleBasedCollator
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
CollationKey(String source)
CollationKeyのコンストラクタです。
-
メソッドのサマリー
修飾子と型 メソッド 説明 abstract int
compareTo(CollationKey target)
このCollationKeyをターゲットのCollationKeyと比較します。String
getSourceString()
このCollationKeyが表すStringを返します。abstract byte[]
toByteArray()
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- 戻り値:
- 整数値。 これがターゲットより小さければ、値はゼロより小さい。これがターゲットと等しければ、値はゼロ。これがターゲットより大きければ、値はゼロより大きい
- 関連項目:
Collator.compare(java.lang.String, java.lang.String)
-
getSourceString
public String getSourceString()
このCollationKeyが表すStringを返します。- 戻り値:
- このCollationKeyのソース文字列
-
toByteArray
public abstract byte[] toByteArray()
CollationKeyをビット列に変換します。 2つのCollationKeyが正しく比較できる場合は、これらの配列のそれぞれに対するバイト配列を比較しても同じ結果が得られます。 バイト配列では、もっとも大きなバイトが最初にあります。- 戻り値:
- CollationKeyのバイト配列表現
-
-