5.3. Iterating Over an ArrayList

Problem

You need to iterate over a portion of an ArrayList. For example, you have an ArrayList with 30 elements, and you need to iterate from index 0 to index 20.

Solution

Use an ArrayListIterator to iterate through a specified region of an ArrayList. This implementation of Iterator is constructed with a reference to an ArrayList and two optional parameters that specify the start and end of an iteration. This example demonstrates the use of ArrayListIterator to iterate over the 3rd, 4th, and 5th elements of an ArrayList:

String[] strings = new String[] { "A", "B", "C", "D", "E", "F" };
List list = new ArrayList( Arrays.asList( strings ) );

Iterator iterator = new ArrayListIterator( list, 3, 6 );
while( iterator.hasNext( ) ) {
        int index = iterator.nextIndex( );
    String element = (String) iterator.next( );
    System.out.println( "Element at " + index + ": " + element );
}

ArrayListIterator also allows you to obtain the index of an element during an iteration. In the previous example, iterator.nextIndex() returns the index of the element returned by the subsequent call to iterator.next( ). The code above iterates through three elements of the ArrayList, producing the following output:

Element at 3: D
Element at 4: E
Element at 5: F

Discussion

You can construct an ArrayListIterator with up to three arguments. The first argument is the ArrayList to be iterated over. The second optional argument specifies the inclusive start index, and the third optional ...

Get Jakarta Commons Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.