Most visited

Recently visited

Added in API level 24

ValueIterator

public interface ValueIterator

android.icu.util.ValueIterator


用于对<int,Object>集合进行迭代的接口,其中int是按升序排序的整数索引,Object则为其关联值。

ValueIterator允许对Integer.MIN_VALUE到Integer.MAX_VALUE(含)范围内的整数索引进行迭代。 ValueIterator的实现应该在上述范围内指定自己的最大子范围,这对其应用程序有意义。

大多数实现将由工厂方法创建,例如UCharacter.getNameIterator中的字符名称迭代器。 见下面的例子。 使用示例:

 ValueIterator iterator = UCharacter.getNameIterator();
 ValueIterator.Element result = new ValueIterator.Element();
 iterator.setRange(UCharacter.MIN_VALUE, UCharacter.MAX_VALUE);
 while (iterator.next(result)) {
     System.out.println("Codepoint \\u" +
                        Integer.toHexString(result.integer) +
                        " has the character name " + (String)result.value);
 }
 

Summary

Nested classes

class ValueIterator.Element

每次迭代的返回结果容器。

Public methods

abstract boolean next(ValueIterator.Element element)

返回此迭代的下一个结果,如果我们不在迭代结束时返回true,否则返回false。

abstract void reset()

如果先前调用了setRange(X,Y),则重置迭代器以开始从整数索引Integer.MIN_VALUE或X进行迭代。

abstract void setRange(int start, int limit)

限制要迭代的整数范围,并将迭代重置为从索引参数开始开始。

Public methods

next

Added in API level 24
boolean next (ValueIterator.Element element)

返回此迭代的下一个结果,如果我们不在迭代结束时返回true,否则返回false。

如果这返回false,则元素的内容将不会更新。

Parameters
element ValueIterator.Element: for storing the result index and value
Returns
boolean true if we are not at the end of the iteration, false otherwise.

也可以看看:

reset

Added in API level 24
void reset ()

如果先前调用了setRange(X,Y),则重置迭代器以开始从整数索引Integer.MIN_VALUE或X进行迭代。

setRange

Added in API level 24
void setRange (int start, 
                int limit)

限制要迭代的整数范围,并将迭代重置为从索引参数开始开始。

如果在调用next(element)之前未执行setRange(start,end),则迭代将从整数索引Integer.MIN_VALUE开始,并以Integer.MAX_VALUE结束。

如果此范围设置在实现指定的有意义范围之外,则next(element)将始终返回false。

Parameters
start int: first integer in the range to iterate
limit int: one more than the last integer in the range
Throws
IllegalArgumentException thrown when attempting to set an illegal range. E.g limit <= start

Hooray!