Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

# RangeValueIterator

*** ** * ** ***


`
public


interface
RangeValueIterator
`


`


`

|---|
| android.icu.util.RangeValueIterator |

<br />

*** ** * ** ***

<br />

Interface for enabling iteration over sets of \<int index, int value\>,
where index is the sorted integer index in ascending order and value, its
associated integer value.

The result for each iteration is the consecutive range of
\<int index, int value\> with the same value. Result is represented by
\<start, limit, value\> where

- start is the starting integer of the result range
- limit is 1 after the maximum integer that follows start, such that all integers between start and (limit - 1), inclusive, have the same associated integer value.
- value is the integer value that all integers from start to (limit - 1) share in common.


Hence value(start) = value(start + 1) = .... = value(start + n) = .... =
value(limit - 1). However value(start -1) != value(start) and
value(limit) != value(start).

Most implementations will be created by factory methods, such as the
character type iterator in UCharacter.getTypeIterator. See example below.

Example of use:  

```
RangeValueIterator iterator = UCharacter.getTypeIterator();
RangeValueIterator.Element result = new RangeValueIterator.Element();
while (iterator.next(result)) {
    System.out.println("Codepoint \\u" +
                       Integer.toHexString(result.start) +
                       " to codepoint \\u" +
                       Integer.toHexString(result.limit - 1) +
                       " has the character type " + result.value);
}
```

<br />

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/icu/util/RangeValueIterator.Element` Return result wrapper for android.icu.util.RangeValueIterator. |

| ### Public methods ||
|---|---|
| ` abstract boolean` | ` https://developer.android.com/reference/android/icu/util/RangeValueIterator#next(android.icu.util.RangeValueIterator.Element)(https://developer.android.com/reference/android/icu/util/RangeValueIterator.Element element) ` <br /> Returns the next maximal result range with a common value and returns true if we are not at the end of the iteration, false otherwise. |
| ` abstract void` | ` https://developer.android.com/reference/android/icu/util/RangeValueIterator#reset()() ` Resets the iterator to the beginning of the iteration. |

## Public methods

### next

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract boolean next (RangeValueIterator.Element element)
```

<br />

Returns the next maximal result range with a common value and returns
true if we are not at the end of the iteration, false otherwise.

If this returns a false, the contents of elements will not
be updated.

<br />

| Parameters ||
|---|---|
| `element` | `RangeValueIterator.Element`: for storing the result range and value <br /> |

| Returns ||
|---|---|
| `boolean` | true if we are not at the end of the iteration, false otherwise. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/util/RangeValueIterator.Element`

### reset

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void reset ()
```

Resets the iterator to the beginning of the iteration.

<br />