モジュール java.base
パッケージ java.text

クラス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オブジェクトから生成しなければいけません。

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());
 

導入されたバージョン:
1.1
関連項目:
CollatorRuleBasedCollator
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    CollationKey​(String source)
    CollationKeyのコンストラクタです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract int
    このCollationKeyをターゲットのCollationKeyと比較します。
    このCollationKeyが表すStringを返します。
    abstract byte[]
    CollationKeyをビット列に変換します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

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