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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract intcompareTo(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的字节数组表示
-