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());
Collator
、RuleBasedCollator
修飾子 | コンストラクタと説明 |
---|---|
protected |
CollationKey(String source)
CollationKeyのコンストラクタです。
|
修飾子と型 | メソッドと説明 |
---|---|
abstract int |
compareTo(CollationKey target)
このCollationKeyをターゲットのCollationKeyと比較します。
|
String |
getSourceString()
このCollationKeyが表すStringを返します。
|
abstract byte[] |
toByteArray()
CollationKeyをビット列に変換します。
|
protected CollationKey(String source)
source
- ソース文字列NullPointerException
- source
がnullである場合public abstract int compareTo(CollationKey target)
compareTo
、インタフェース: Comparable<CollationKey>
target
- ターゲットのCollationKeyCollator.compare(java.lang.String, java.lang.String)
public String getSourceString()
public abstract byte[] toByteArray()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.