java.lang.Object
java.text.CollationKey
- 所有已实现的接口:
-
Comparable<CollationKey>
一个
CollationKey
代表了一个String
在特定Collator
对象的规则下。比较两个CollationKey
会返回它们代表的String
的相对顺序。使用CollationKey
比较String
通常比使用Collator.compare
更快。因此,当需要多次比较String
时,例如对String
列表进行排序时,使用CollationKey
更有效率。
你不能直接创建CollationKey
。相反,通过调用Collator.getCollationKey
来生成它们。只能比较由同一个Collator
对象生成的CollationKey
。
为String
生成CollationKey
涉及检查整个String
并将其转换为可以按位比较的一系列位。一旦生成了键,就可以快速进行比较。生成键的成本在需要多次比较String
时会得到回收。另一方面,比较的结果通常由每个String
的前几个字符决定。 Collator.compare
只检查它需要的字符数,这使得在进行单个比较时更快。
以下示例展示了如何使用CollationKey
对String
列表进行排序。
// 为要排序的字符串创建CollationKeys数组。 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); //... // 在sort例程的主体内部,以这种方式比较键 if (keys[i].compareTo(keys[j]) > 0) // 交换keys[i]和keys[j] //... // 最后,当我们从sort返回时。 System.out.println(keys[0].getSourceString()); System.out.println(keys[1].getSourceString()); System.out.println(keys[2].getSourceString());
- 自版本:
- 1.1
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract int
compareTo
(CollationKey target) 将此CollationKey与目标CollationKey进行比较。返回此CollationKey代表的字符串。abstract byte[]
将CollationKey转换为一系列位。
-
Constructor Details
-
CollationKey
CollationKey构造函数。- 参数:
-
source
- 源字符串 - 抛出:
-
NullPointerException
- 如果source
为null - 自版本:
- 1.6
-
-
Method Details
-
compareTo
将此CollationKey与目标CollationKey进行比较。应用创建这些键的Collator对象的排序规则。注意: 由不同Collator创建的CollationKeys无法进行比较。- 指定者:
-
compareTo
在接口Comparable<CollationKey>
- 参数:
-
target
- 目标CollationKey - 返回:
- 返回一个整数值。如果此小于目标,则值小于零,如果此和目标相等,则值为零,如果此大于目标,则值大于零。
- 参见:
-
getSourceString
返回此CollationKey代表的字符串。- 返回:
- 此CollationKey的源字符串
-
toByteArray
public abstract byte[] toByteArray()将CollationKey转换为一系列位。如果两个CollationKeys可以合法比较,则可以比较每个键的字节数组以获得相同的结果。字节数组按最重要字节优先排序。- 返回:
- CollationKey的字节数组表示
-