Class UnicodeMapIterator<T>
To iterate over code points, use a loop like this:
UnicodeSetIterator it = new UnicodeSetIterator(set);
while (set.next()) {
if (set.codepoint != UnicodeSetIterator.IS_STRING) {
processCodepoint(set.codepoint);
} else {
processString(set.string);
}
}
To iterate over code point ranges, use a loop like this:
UnicodeSetIterator it = new UnicodeSetIterator(set);
while (set.nextRange()) {
if (set.codepoint != UnicodeSetIterator.IS_STRING) {
processCodepointRange(set.codepoint, set.codepointEnd);
} else {
processString(set.string);
}
}
-
Field Summary
FieldsModifier and TypeFieldDescriptionintCurrent code point, or the special valueIS_STRING, if the iterator points to a string.intWhen iterating over ranges usingnextRange(),codepointEndcontains the inclusive end of the iteration range, ifcodepoint != IS_STRING.protected intprivate intstatic intValue ofcodepointif the iterator points to a string.private UnicodeMap<T> protected intprivate intIfcodepoint == IS_STRING, thenstringpoints to the current string.The value associated with this element or range. -
Constructor Summary
ConstructorsConstructorDescriptionCreate an iterator over nothing.Create an iterator over the given set. -
Method Summary
Modifier and TypeMethodDescriptionGets the current string from the iterator.protected TloadRange(int range) booleannext()Returns the next element in the set, either a single code point or a string.booleanReturns the next element in the set, either a code point range or a string.reset()Resets this iterator to the start of the set.voidreset(UnicodeMap set) Sets this iterator to visit the elements of the given set and resets it to the start of that set.
-
Field Details
-
IS_STRING
public static int IS_STRINGValue ofcodepointif the iterator points to a string. Ifcodepoint == IS_STRING, then examinestringfor the current iteration result. -
codepoint
public int codepointCurrent code point, or the special valueIS_STRING, if the iterator points to a string. -
codepointEnd
public int codepointEndWhen iterating over ranges usingnextRange(),codepointEndcontains the inclusive end of the iteration range, ifcodepoint != IS_STRING. If iterating over code points usingnext(), or ifcodepoint == IS_STRING, then the value ofcodepointEndis undefined. -
string
Ifcodepoint == IS_STRING, thenstringpoints to the current string. Ifcodepoint != IS_STRING, the value ofstringis undefined. -
value
The value associated with this element or range. -
map
-
endRange
private int endRange -
range
private int range -
stringIterator
-
endElement
protected int endElement -
nextElement
protected int nextElement
-
-
Constructor Details
-
UnicodeMapIterator
Create an iterator over the given set.- Parameters:
set- set to iterate over
-
UnicodeMapIterator
public UnicodeMapIterator()Create an iterator over nothing.next()andnextRange()return false. This is a convenience constructor allowing the target to be set later.
-
-
Method Details
-
next
public boolean next()Returns the next element in the set, either a single code point or a string. If there are no more elements in the set, return false. Ifcodepoint == IS_STRING, the value is a string in thestringfield. Otherwise the value is a single code point in thecodepointfield.The order of iteration is all code points in sorted order, followed by all strings sorted order.
codepointEndis undefined after calling this method.stringis undefined unlesscodepoint == IS_STRING. Do not mix calls tonext()andnextRange()without callingreset()between them. The results of doing so are undefined.- Returns:
- true if there was another element in the set and this object contains the element.
-
nextRange
public boolean nextRange()Returns the next element in the set, either a code point range or a string. If there are no more elements in the set, return false. Ifcodepoint == IS_STRING, the value is a string in thestringfield. Otherwise the value is a range of one or more code points fromcodepointtocodepointeEndinclusive.The order of iteration is all code points ranges in sorted order, followed by all strings sorted order. Ranges are disjoint and non-contiguous.
stringis undefined unlesscodepoint == IS_STRING. Do not mix calls tonext()andnextRange()without callingreset()between them. The results of doing so are undefined.- Returns:
- true if there was another element in the set and this object contains the element.
-
reset
Sets this iterator to visit the elements of the given set and resets it to the start of that set. The iterator is valid only so long assetis valid.- Parameters:
set- the set to iterate over.
-
reset
-
getString
Gets the current string from the iterator. Only use after calling next(), not nextRange(). -
loadRange
-