java.text

接口
异常
java.lang.Object
  继承者 java.text.CollationKey
所有已实现的接口:
Comparable< CollationKey>

public abstract class CollationKey
     
extends Object
implements Comparable< 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
 

构造方法详细信息

CollationKey

protected CollationKey(String source)
CollationKey 构造方法。

参数:
source - - 源字符串。
抛出:
NullPointerException - 如果 source 为 null。
从以下版本开始:
1.6
方法详细信息

compareTo

public abstract int compareTo(CollationKey target)
比较此 CollationKey 与目标 CollationKey。创建这些键的 Collator 对象的 collation 规则将被应用。 注:不能比较由不同 Collator 对象创建的 CollationKey。

指定者:
接口 Comparable<CollationKey> 中的 compareTo
参数:
target - 目标 CollationKey
返回:
一个整数值。如果此 CollationKey 小于目标 CollationKey,则值小于零;如果此 CollationKey 与目标 CollationKey 相等,则值等于零;如果此 CollationKey 大于目标 CollationKey,则值大于零。
另请参见:
Collator.compare(java.lang.String, java.lang.String)

getSourceString

public String getSourceString()
返回此 CollationKey 表示的 String。


toByteArray

public abstract byte[] toByteArray()
将 CollationKey 转换成位序列。如果两个 CollationKey 可以进行合法的比较,则可以比较每个键的字节数组,其结果相同。字节数组从最高有效字节开始组织。