java.lang.Object java.text.CollationKey
public abstract class CollationKey
CollationKey
表示遵守特定 Collator
对象规则的 String
。比较两个 CollationKey
将返回它们所表示的 String
的相对顺序。使用 CollationKey
来比较 String
通常比使用 Collator.compare
更快。因此,当必须多次比较 String
时(例如,对一个 String
列表进行排序),使用 CollationKey
会更高效。
不能直接创建 CollationKey
。而是通过调用 Collator.getCollationKey
来生成。只能比较同一个 Collator
对象生成的 CollationKey
。
为一个 String
生成 CollationKey
涉及到检查整个 String
,并将它转换成可以按位比较的一系列位。一旦生成了键,就允许进行快速比较。当 String
需要多次比较时,以更快速的比较方式生成键的成本可以忽略不计。另一方面,比较的结果通常由每个 String
的第一对字符确定。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 转换成位序列。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
protected CollationKey(String source)
source
- - 源字符串。
NullPointerException
- 如果
source
为 null。
方法详细信息 |
---|
public abstract int compareTo(CollationKey target)
Comparable<CollationKey>
中的
compareTo
target
- 目标 CollationKey
Collator.compare(java.lang.String, java.lang.String)
public String getSourceString()
public abstract byte[] toByteArray()