JavaTM 2 Platform
Standard Ed. 5.0

java.text
类 CollationKey

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

public final 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

方法摘要
 int compareTo(CollationKey target)
          比较此 CollationKey 与目标 CollationKey。
 boolean equals(Object target)
          比较此 CollationKey 与目标 CollationKey 的相等性。
 String getSourceString()
          返回此 CollationKey 表示的 String。
 int hashCode()
          创建此 CollationKey 的哈希码。
 byte[] toByteArray()
          将 CollationKey 转换成位序列。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

compareTo

public 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)

equals

public boolean equals(Object target)
比较此 CollationKey 与目标 CollationKey 的相等性。创建这些键的 Collator 对象的 collation 规则将被应用。注:不能比较由不同 Collator 对象创建的 CollationKey。

覆盖:
Object 中的 equals
参数:
target - 要比较的 CollationKey。
返回:
如果两个对象相等,则返回 true;否则返回 false。
另请参见:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
创建此 CollationKey 的哈希码。哈希值根据键本身计算,而不是根据创建该键的 String 计算。因此,如果 x 和 y 为 CollationKey,且 x.equals(y) 为 true,则 x.hashCode(x) == y.hashCode()。这允许在哈希表中进行与语言相关的比较。有关例子,请参见 CollatinKey 类描述。

覆盖:
Object 中的 hashCode
返回:
基于字符串的 collation 排序的哈希值。
另请参见:
Object.equals(java.lang.Object), Hashtable

getSourceString

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


toByteArray

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


JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策