Класс CollationElementIterator
public final class CollationElementIterator extends Object
CollationElementIterator используется как итератор для перебора каждого символа интернациональной строки. Используйте итератор, чтобы получить приоритет сортировки текущего символа. Приоритет сортировки символа, который мы называем ключом, определяет, как символ сортируется в заданном объекте сортировки. Например, рассмотрим следующие примеры для испанского языка:
"ca" → the first key is key('c') and second key is key('a').
"cha" → the first key is key('ch') and second key is key('a').
А для немецкого языка:
"äb" → the first key is key('a'), the second key is key('e'), and
the third key is key('b').
Ключ символа — это целое число, состоящее из первичного порядка (short), вторичного порядка (byte) и третичного порядка (byte). В Java строго определены размер и знаковость примитивных типов данных. Поэтому статические функции primaryOrder, secondaryOrder и tertiaryOrder возвращают соответственно int, short и short, чтобы гарантировать корректность значения ключа. Пример использования итератора:
String testString = "This is a test"; Collator col = Collator.getInstance(); if (col instanceof RuleBasedCollator ruleBasedCollator) { CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString); int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next()); â® }
CollationElementIterator.next возвращает порядок сортировки следующего символа. Порядок сортировки состоит из первичного, вторичного и третичного порядков. Тип данных порядка сортировки — int. Первые 16 бит порядка сортировки составляют его первичный порядок; следующие 8 бит — вторичный порядок, а последние 8 бит — третичный порядок.
Примечание: CollationElementIterator является частью реализации RuleBasedCollator. Она может использоваться только с экземплярами RuleBasedCollator.
- Начиная с версии:
- 1.1
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
NULLORDER |
Нулевой порядок, указывающий, что курсор достиг конца строки. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
getMaxExpansion |
Возвращает максимальную длину последовательностей расширения, заканчивающихся указанным порядком сравнения. |
int |
getOffset() |
Возвращает смещение символа в исходном тексте, соответствующее следующему элементу сортировки. |
int |
next() |
Получает следующий элемент сортировки в строке. |
int |
previous() |
Получает предыдущий элемент сортировки в строке. |
static final int |
primaryOrder |
Возвращает первичный компонент элемента сортировки. |
void |
reset() |
Сбрасывает курсор в начало строки. |
static final short |
secondaryOrder |
Возвращает вторичный компонент элемента сортировки. |
void |
setOffset |
Устанавливает итератор на элемент сортировки, соответствующий указанному символу (параметр задаёт смещение СИМВОЛА в исходной строке, а не смещение в соответствующей последовательности элементов сортировки). |
void |
setText |
Задаёт новую строку для перебора. |
void |
setText |
Задаёт новую строку для перебора. |
static final short |
tertiaryOrder |
Возвращает третичный компонент элемента сортировки. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело и подлежит удалению: этот элемент API может быть удалён в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
NULLORDER
public static final int NULLORDER
- См. также:
Подробное описание методов
reset
public void reset()
next
public int next()
Этот итератор перебирает последовательность элементов сортировки, сформированную из строки. Поскольку между символами и элементами сортировки не обязательно существует взаимно однозначное соответствие, это не означает то же самое, что «вернуть элемент сортировки [или приоритет сортировки] следующего символа в строке».
Эта функция возвращает элемент сортировки, на который в данный момент указывает итератор, а затем перемещает внутренний указатель на следующий элемент. Метод previous() сначала перемещает указатель, а затем возвращает элемент. Это означает, что при смене направления перебора (то есть при вызове next(), а затем previous() или previous(), а затем next()) один и тот же элемент будет получен дважды.
- Возвращает:
- следующий элемент сортировки
previous
public int previous()
Этот итератор перебирает последовательность элементов сортировки, сформированную из строки. Поскольку между символами и элементами сортировки не обязательно существует взаимно однозначное соответствие, это не означает то же самое, что «вернуть элемент сортировки [или приоритет сортировки] предыдущего символа в строке».
Эта функция перемещает внутренний указатель итератора на элемент сортировки перед тем, на который он указывает в данный момент, а затем возвращает этот элемент; метод next() возвращает текущий элемент и затем перемещает указатель. Это означает, что при смене направления перебора (то есть при вызове next(), а затем previous() или previous(), а затем next()) один и тот же элемент будет получен дважды.
- Возвращает:
- предыдущий элемент сортировки
- Начиная с версии:
- 1.2
primaryOrder
public static final int primaryOrder(int order)
- Параметры:
-
order— элемент сортировки - Возвращает:
- первичный компонент элемента
secondaryOrder
public static final short secondaryOrder(int order)
- Параметры:
-
order— элемент сортировки - Возвращает:
- вторичный компонент элемента
tertiaryOrder
public static final short tertiaryOrder(int order)
- Параметры:
-
order— элемент сортировки - Возвращает:
- третичный компонент элемента
setOffset
public void setOffset(int newOffset)
- Параметры:
-
newOffset— новое смещение символа в исходном тексте. - Начиная с версии:
- 1.2
getOffset
public int getOffset()
- Возвращает:
- смещение символа в исходном тексте, соответствующее элементу сортировки, который будет возвращён следующим вызовом next().
- Начиная с версии:
- 1.2
getMaxExpansion
public int getMaxExpansion(int order)
- Параметры:
-
order— порядок сортировки, возвращённый методом previous или next. - Возвращает:
- максимальная длина последовательностей расширения, заканчивающихся указанным порядком.
- Начиная с версии:
- 1.2
setText
public void setText(String source)
- Параметры:
-
source— новый исходный текст - Начиная с версии:
- 1.2
setText
public void setText(CharacterIterator source)
- Параметры:
-
source— новый исходный текст. - Начиная с версии:
- 1.2
© 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.