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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。