Skip to content

Most visited

Recently visited

navigation
Added in API level 1

CollationKey

public abstract class CollationKey
extends Object implements Comparable<CollationKey>

java.lang.Object
   ↳ java.text.CollationKey


Represents a string under the rules of a specific Collator object. Comparing two CollationKey instances returns the relative order of the strings they represent.

Since the rule set of collators can differ, the sort orders of the same string under two different Collator instances might differ. Hence comparing collation keys generated from different Collator instances can give incorrect results.

Both the method CollationKey.compareTo(CollationKey) and the method Collator.compare(String, String) compares two strings and returns their relative order. The performance characteristics of these two approaches can differ.

During the construction of a CollationKey, the entire source string is examined and processed into a series of bits terminated by a null, that are stored in the CollationKey. When CollationKey.compareTo(CollationKey) executes, it performs bitwise comparison on the bit sequences. This can incur startup cost when creating the CollationKey, but once the key is created, binary comparisons are fast. This approach is recommended when the same strings are to be compared over and over again.

On the other hand, implementations of Collator.compare(String, String) can examine and process the strings only until the first characters differ in order. This approach is recommended if the strings are to be compared only once.

The following example shows how collation keys can be used to sort a list of strings:

 // 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());

See also:

Summary

Protected constructors

CollationKey(String source)

Public methods

abstract int compareTo(CollationKey value)

Compares this collation key to the given collation key.

String getSourceString()

Returns the string from which this collation key was created.

abstract byte[] toByteArray()

Returns this collation key as a byte array.

Inherited methods

From class java.lang.Object
From interface java.lang.Comparable

Protected constructors

CollationKey

Added in API level 9
CollationKey (String source)

Parameters
source String

Public methods

compareTo

Added in API level 1
int compareTo (CollationKey value)

Compares this collation key to the given collation key.

Parameters
value CollationKey: the other collation key.
Returns
int a negative value if this key is less than value, 0 if they are equal, and a positive value if this key is greater.

getSourceString

Added in API level 1
String getSourceString ()

Returns the string from which this collation key was created.

Returns
String the source string of this collation key.

toByteArray

Added in API level 1
byte[] toByteArray ()

Returns this collation key as a byte array.

Returns
byte[] an array of bytes.
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.