Module  java.base
软件包  java.text

Class CollationKey

  • All Implemented Interfaces:
    Comparable<CollationKey>


    public abstract class CollationKey
    extends Object
    implements Comparable<CollationKey>
    A CollationKey代表一个String根据一个特定的Collator对象的规则。 比较两个CollationKey s返回其代表的String的相对顺序。 使用CollationKey比较String s通常比使用Collator.compare快。 因此,当String必须多次比较时,例如当排序String的列表时。 使用CollationKey s更有效率。

    您不能直接创建CollationKey 而是通过调用Collator.getCollationKey生成它们。 只能比较CollationKey来自同一生成S- Collator对象。

    CollationKey生成String涉及检查整个String并将其转换为可以按位比较的一系列位。 一旦生成密钥,就可以快速比较。 String需要进行多次比较时,生成键的成本将以较快的比较进行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());
     
    从以下版本开始:
    1.1
    另请参见:
    CollatorRuleBasedCollator
    • 构造方法详细信息

      • CollationKey

        protected CollationKey​(String source)
        CollationKey构造函数。
        参数
        source - 源字符串
        异常
        NullPointerException - 如果 source为空
        从以下版本开始:
        1.6
    • 方法详细信息

      • compareTo

        public abstract int compareTo​(CollationKey target)
        将此CollationKey与目标CollationKey进行比较。 应用了创建这些键的Collator对象的排序规则。 注意:由不同Collator创建的CollationKeys无法比较。
        Specified by:
        compareTo在接口 Comparable<CollationKey>
        参数
        target - 目标CollationKey
        结果
        返回一个整数值。 如果该值小于目标值,则该值小于零,如果此值和目标值相等,则值为零,如果该值大于目标值,则值大于零。
        另请参见:
        Collator.compare(java.lang.String, java.lang.String)
      • getSourceString

        public String getSourceString​()
        返回此CollationKey表示的String。
        结果
        这个CollationKey的源字符串
      • toByteArray

        public abstract byte[] toByteArray​()
        将CollationKey转换为位序列。 如果两个CollationKey可以合法比较,那么可以比较每个这些密钥的字节数组,以获得相同的结果。 字节数组首先被组织成最高有效字节。
        结果
        CollationKey的字节数组表示