Класс Collator
- Все реализуемые интерфейсы:
Cloneable, Comparator<Object>
- Прямые известные подклассы:
RuleBasedCollator
public abstract class Collator extends Object implements Comparator<Object>, Cloneable
Collator выполняет сравнение String с учетом локали. Этот класс используется для создания процедур поиска и сортировки текста на естественном языке. Collator — абстрактный базовый класс. Подклассы реализуют конкретные стратегии сортировки. Один подкласс, RuleBasedCollator, входит в состав Java Platform и применим для широкого набора языков. Для более специализированных задач можно создавать другие подклассы.
Как и другие классы, учитывающие локаль, этот класс позволяет получить подходящий объект Collator для указанной локали с помощью статического фабричного метода getInstance. Изучать подклассы Collator потребуется только в том случае, если нужно разобраться в деталях конкретной стратегии сортировки или изменить ее.
В следующем примере показано, как сравнить две строки с помощью Collator для локали по умолчанию.
// Compare two strings in the default locale
Collator myCollator = Collator.getInstance();
if (myCollator.compare("abc", "ABC") < 0) {
System.out.println("abc is less than ABC");
} else {
System.out.println("abc is greater than or equal to ABC");
}
Чтобы определить, какие различия считаются значимыми при сравнении, можно задать свойство strength объекта Collator. Предусмотрено четыре уровня: PRIMARY, SECONDARY, TERTIARY и IDENTICAL. Точное соответствие уровней языковым особенностям зависит от локали. Например, в чешском языке «e» и «f» считаются различиями первичного уровня, «e» и «ě» — вторичного, «e» и «E» — третичного, а «e» и «e» идентичны. Ниже показано, как игнорировать регистр и диакритические знаки для американского английского.
// Get the Collator for US English and set its strength to PRIMARY
Collator usCollator = Collator.getInstance(Locale.US);
usCollator.setStrength(Collator.PRIMARY);
if (usCollator.compare("abc", "ABC") == 0) {
System.out.println("Strings are equivalent");
}
Для однократного точного сравнения String лучше всего подходит метод compare. Однако при сортировке списка String обычно требуется сравнивать каждый String несколько раз. В этом случае CollationKey обеспечивают более высокую производительность. Класс CollationKey преобразует String в последовательность битов, которую можно сравнивать побитово с другими CollationKey. CollationKey создается объектом Collator для заданного String.
- Примечание к API:
-
CollationKeyиз разныхCollatorсравнивать нельзя. Пример использованияCollationKeyсм. в описании классаCollationKey. - Примечание по реализации:
- При одновременном использовании
RuleBasedCollatorиз эталонной реализации JDK, которое является подтипом, возвращаемым поставщиком по умолчанию фабричных методовgetInstance(), может возникнуть значительная конкуренция потоков. Поэтому в многопоточных средах рекомендуется получать отдельный экземпляр для каждого потока. - Начиная с версии:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
CANONICAL_DECOMPOSITION |
Значение режима декомпозиции. |
static final int |
FULL_DECOMPOSITION |
Значение режима декомпозиции. |
static final int |
IDENTICAL |
Значение уровня Collator. |
static final int |
NO_DECOMPOSITION |
Значение режима декомпозиции. |
static final int |
PRIMARY |
Значение уровня Collator. |
static final int |
SECONDARY |
Значение уровня Collator. |
static final int |
TERTIARY |
Значение уровня Collator. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Переопределяет Cloneable |
int |
compare |
Сравнивает два аргумента по порядку. |
abstract int |
compare |
Сравнивает исходную строку с целевой строкой согласно правилам сортировки этого Collator. |
boolean |
equals |
Сравнивает два объекта Collator на равенство. |
boolean |
equals |
Удобный метод для сравнения двух строк на равенство согласно правилам сортировки этого Collator. |
static Locale[] |
getAvailableLocales() |
Возвращает массив всех локалей, для которых методы getInstance этого класса могут возвращать локализованные экземпляры. |
abstract CollationKey |
getCollationKey |
Преобразует String в последовательность битов, которую можно сравнивать побитово с другими CollationKey. |
int |
getDecomposition() |
Возвращает режим декомпозиции этого Collator. |
static Collator |
getInstance() |
Возвращает Collator для текущей локали по умолчанию. |
static Collator |
getInstance |
Возвращает Collator для указанной локали. |
int |
getStrength() |
Возвращает свойство strength этого Collator. |
abstract int |
hashCode() |
Вычисляет хеш-код этого Collator. |
void |
setDecomposition |
Задает режим декомпозиции этого Collator. |
void |
setStrength |
Задает свойство strength этого Collator. |
Методы, объявленные в классе Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected void |
finalize() |
Устарело, подлежит удалению: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до пробуждения, обычно вследствие вызова notify или interrupt. |
final void |
wait |
Приостанавливает текущий поток до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Приостанавливает текущий поток до пробуждения, обычно вследствие вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
Методы, объявленные в интерфейсе Comparator
max, min, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong | Модификатор и тип | Метод | Описание |
|---|---|---|
default <U extends T> |
max |
Возвращает большее из двух значений согласно этому компаратору. |
default <U extends T> |
min |
Возвращает меньшее из двух значений согласно этому компаратору. |
default Comparator |
reversed() |
Возвращает компаратор, задающий порядок, обратный порядку этого компаратора. |
default Comparator |
thenComparing |
Возвращает компаратор лексикографического порядка с другим компаратором. |
default <U extends Comparable<? super U>> |
thenComparing |
Возвращает компаратор лексикографического порядка с функцией, извлекающей ключ сортировки типа Comparable. |
default <U> Comparator |
thenComparing |
Возвращает компаратор лексикографического порядка с функцией, извлекающей ключ для сравнения с заданным Comparator. |
default Comparator |
thenComparingDouble |
Возвращает компаратор лексикографического порядка с функцией, извлекающей ключ сортировки типа double. |
default Comparator |
thenComparingInt |
Возвращает компаратор лексикографического порядка с функцией, извлекающей ключ сортировки типа int. |
default Comparator |
thenComparingLong |
Возвращает компаратор лексикографического порядка с функцией, извлекающей ключ сортировки типа long. |
Подробное описание полей
PRIMARY
public static final int PRIMARY
- См. также:
SECONDARY
public static final int SECONDARY
- См. также:
TERTIARY
public static final int TERTIARY
- См. также:
IDENTICAL
public static final int IDENTICAL
- См. также:
NO_DECOMPOSITION
public static final int NO_DECOMPOSITION
- См. также:
CANONICAL_DECOMPOSITION
public static final int CANONICAL_DECOMPOSITION
CANONICAL_DECOMPOSITION соответствует форме нормализации D, описанной в документе дополнение № 15 к стандарту Unicode: формы нормализации Unicode.
- Внешние спецификации
- См. также:
FULL_DECOMPOSITION
public static final int FULL_DECOMPOSITION
FULL_DECOMPOSITION соответствует форме нормализации KD, описанной в документе дополнение № 15 к стандарту Unicode: формы нормализации Unicode.
- Внешние спецификации
- См. также:
Подробное описание конструкторов
Collator
protected Collator()
- См. также:
Подробное описание методов
getInstance
public static Collator getInstance()
Locale.getDefault().- Возвращает:
- Collator для локали по умолчанию (например, en_US)
- См. также:
getInstance
public static Collator getInstance(Locale desiredLocale)
ks» и/или «kk» параметры сортировки Unicode, этот метод вызовет setStrength(int) и/или setDecomposition(int) для созданного экземпляра, если указанные параметры сортировки Unicode распознаны согласно следующим соответствиям: | Значения BCP 47 для силы (ks) | Константы Collator для силы |
|---|---|
| level1 | PRIMARY |
| level2 | SECONDARY |
| level3 | TERTIARY* |
| identic | IDENTICAL |
| Значения BCP 47 для нормализации (kk) | Константы Collator для декомпозиции |
| true | CANONICAL_DECOMPOSITION |
| false | NO_DECOMPOSITION* |
- Примечание к API:
- Реализации класса
Collatorмогут возвращать разные экземпляры в зависимости от «co» идентификатора сортировки Unicode вdesiredLocale. Например:может вернуть экземплярCollator.getInstance(Locale.forLanguageTag("sv-u-co-trad"));Collatorс традиционным шведским порядком сортировки, в котором «v» и «w» имеют одинаковый порядок сортировки, тогда как экземплярCollatorдля шведской локали без идентификатора «co» различает «v» и «w». - Параметры:
-
desiredLocale— желаемая локаль. - Возвращает:
- Collator для заданной локали.
- Внешние спецификации
- См. также:
compare
public abstract int compare(String source, String target)
Для однократного сравнения этот метод обеспечивает наилучшую производительность. Если заданная строка будет участвовать в нескольких сравнениях, CollationKey.compareTo обеспечит наилучшую производительность. Пример использования CollationKey см. в описании класса Collator.
- Параметры:
-
source— исходная строка. -
target— целевая строка. - Возвращает:
- Целое число. Значение меньше нуля, если исходная строка меньше целевой; равно нулю, если строки равны; больше нуля, если исходная строка больше целевой.
- См. также:
compare
public int compare(Object o1, Object o2)
Эта реализация просто возвращает compare((String)o1, (String)o2) .
- Определено в:
-
compareв интерфейсеComparator<Object> - Параметры:
-
o1— первый сравниваемый объект. -
o2— второй сравниваемый объект. - Возвращает:
- Отрицательное целое число, ноль или положительное целое число в зависимости от того, меньше, равен или больше первый аргумент второго.
- Выбрасывает:
-
ClassCastException— аргументы нельзя привести к типу String. - Начиная с версии:
- 1.2
- См. также:
getCollationKey
public abstract CollationKey getCollationKey(String source)
- Параметры:
-
source— строка, которую необходимо преобразовать в ключ сортировки. - Возвращает:
- Ключ сортировки для заданной строки, сформированный согласно правилам сортировки этого Collator. Если исходная строка равна null, возвращается null.
- См. также:
equals
public boolean equals(String source, String target)
- Параметры:
-
source— исходная строка для сравнения. -
target— целевая строка для сравнения. - Возвращает:
- true, если строки равны согласно правилам сортировки; в противном случае — false.
- См. также:
getStrength
public int getStrength()
- Возвращает:
- текущее значение свойства силы этого Collator.
- См. также:
setStrength
public void setStrength(int newStrength)
- Параметры:
-
newStrength— новое значение силы. - Выбрасывает:
-
IllegalArgumentException— если новое значение силы не равно PRIMARY, SECONDARY, TERTIARY или IDENTICAL. - См. также:
getDecomposition
public int getDecomposition()
Доступны три значения режима декомпозиции:
- NO_DECOMPOSITION,
- CANONICAL_DECOMPOSITION
- FULL_DECOMPOSITION.
- Возвращает:
- режим декомпозиции
- См. также:
setDecomposition
public void setDecomposition(int decompositionMode)
- Параметры:
-
decompositionMode— новый режим декомпозиции. - Выбрасывает:
-
IllegalArgumentException— если задано недопустимое значение режима декомпозиции. - См. также:
getAvailableLocales
public static Locale[] getAvailableLocales()
getInstance этого класса могут возвращать локализованные экземпляры. Возвращаемый массив представляет собой объединение локалей, поддерживаемых средой выполнения Java и установленными реализациями CollatorProvider. Как минимум, возвращаемый массив должен содержать экземпляр Locale, равный Locale.ROOT, и экземпляр Locale, равный Locale.US.- Возвращает:
- Массив локалей, для которых доступны локализованные экземпляры
Collator.
clone
equals
public boolean equals(Object that)
- Определено в:
-
equalsв интерфейсеComparator<Object> - Переопределяет:
-
equalsв классеObject - Параметры:
-
that— Collator для сравнения с этим экземпляром. - Возвращает:
- true, если этот Collator совпадает с тем Collator; в противном случае — false.
- См. также:
hashCode
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.