An Iterator wrapper for an Object[], allow us to deal with all array like structures in a consistent manner. : Iterator « Collections « Java Tutorial






/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.    
 */

import java.util.Iterator;
import java.util.NoSuchElementException;
import java.lang.reflect.Array;


/**
 *  
 *  An Iterator wrapper for an Object[]. This will
 *  allow us to deal with all array like structures
 *  in a consistent manner.
 *  
 *  
 *  WARNING : this class's operations are NOT synchronized.
 *  It is meant to be used in a single thread, newly created
 *  for each use in the #foreach() directive.
 *  If this is used or shared, synchronize in the
 *  next() method.
 *  
 *
 * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
 * @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
 * @version $Id: ArrayIterator.java 463298 2006-10-12 16:10:32Z henning $
 */
public class ArrayIterator implements Iterator
{
    /**
     * The objects to iterate.
     */
    private Object array;

    /**
     * The current position and size in the array.
     */
    private int pos;
    private int size;

    /**
     * Creates a new iterator instance for the specified array.
     *
     * @param array The array for which an iterator is desired.
     */
    public ArrayIterator(Object array)
    {
        /*
         * if this isn't an array, then throw.  Note that this is
         * for internal use - so this should never happen - if it does
         *  we screwed up.
         */

        if ( !array.getClass().isArray() )
        {
            throw new IllegalArgumentException(
                "Programmer error : internal ArrayIterator invoked w/o array");
        }

        this.array = array;
        pos = 0;
        size = Array.getLength( this.array );
    }

    /**
     * Move to next element in the array.
     *
     * @return The next object in the array.
     */
    public Object next()
    {
        if (pos < size )
            return Array.get( array, pos++);

        /*
         *  we screwed up...
         */

        throw new NoSuchElementException("No more elements: " + pos +
                                         " / " + size);
    }

    /**
     * Check to see if there is another element in the array.
     *
     * @return Whether there is another element.
     */
    public boolean hasNext()
    {
        return (pos < size );
    }

    /**
     * No op--merely added to satify the <code>Iterator</code> interface.
     */
    public void remove()
    {
        throw new UnsupportedOperationException();
    }
}








9.37.Iterator
9.37.1.Use Iterator to loop through ArrayList
9.37.2.Use Iterator to loop through the HashMap class
9.37.3.Iterate through a Collection using Java Iterator
9.37.4.Traverse through ArrayList in forward direction using Java ListIterator
9.37.5.Traverse through ArrayList in reverse direction using Java ListIterator
9.37.6.Iterate a Collection and remove an item (Exception, wrong version)
9.37.7.Remove an element from Collection using Java Iterator
9.37.8.Iterator from LinkedList
9.37.9.Iterate through elements of Java LinkedList using Iterator
9.37.10.An Iterator that wraps a number of Iterators
9.37.11.Array Iterator
9.37.12.Create singleton Iterator
9.37.13.Cyclic Iteration
9.37.14.Iterator Union of Iterators
9.37.15.Iterator Utils
9.37.16.Iterator class for sparse values in an array.
9.37.17.Iterator class for values contained in an array range.
9.37.18.Sorted Iterator
9.37.19.Treat an Iterator as an Iterable
9.37.20.An Iterator that returns the elements of a specified array, or other iterators etc.
9.37.21.An Iterator wrapper for an Enumeration.
9.37.22.An Iterator wrapper for an Object[], allow us to deal with all array like structures in a consistent manner.
9.37.23.An iterator that breaks text into lines. The result is equal to BufferedReader.readLine().
9.37.24.Gets the child of the specified element having the specified unique name
9.37.25.Implements an java.util.Iterator over any array
9.37.26.Protects an given iterator by preventing calls to remove().
9.37.27.Returns an iterator over the children of the given element with the given tag name
9.37.28.Use an Iterator to cycle through a collection in the forward direction.
9.37.29.This constructs an Iterator over each day in a date range defined by a focus date and range style.