返回介绍

java.text 类 CollationKey

发布于 2019-10-04 09:51:21 字数 5631 浏览 1066 评论 0 收藏 0

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

方法摘要
intcompareTo(CollationKeytarget)

比较此 CollationKey 与目标 CollationKey。

booleanequals(Objecttarget)

比较此 CollationKey 与目标 CollationKey 的相等性。

StringgetSourceString()

返回此 CollationKey 表示的 String。

inthashCode()

创建此 CollationKey 的哈希码。

byte[]toByteArray()

将 CollationKey 转换成位序列。

从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

方法详细信息

compareTo

public int compareTo(CollationKeytarget)
比较此 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(Objecttarget)
比较此 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 可以进行合法的比较,则可以比较每个键的字节数组,其结果相同。字节数组从最高有效字节开始组织。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文