All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.codehaus.groovy.runtime.ReverseListIterator Maven / Gradle / Ivy

The newest version!
package org.codehaus.groovy.runtime;

import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**
 * A reverse iterator over a list. Utilizes the {@link ListIterator}
 * obtained from the provided {@link List} and converts it to an
 * {@link Iterator} that efficiently traverses the List in
 * reverse. The fail-fast semantics of this iterator are the same as the
 * semantics of the underlying ListIterator.
 *
 * @author Mike Dillon
 */
public class ReverseListIterator implements Iterator {
    private ListIterator delegate;

    /**
     * Constructs a new ReverseListIterator for the provided list.
     * @param list the list to iterate over in reverse
     */
    public ReverseListIterator(List list) {
        this.delegate = list.listIterator(list.size());
    }

    /**
     * {@inheritDoc}
     */
    public boolean hasNext() {
        return delegate.hasPrevious();
    }

    /**
     * {@inheritDoc}
     */
    public T next() {
        return delegate.previous();
    }

    /**
     * {@inheritDoc}
     */
    public void remove() {
        delegate.remove();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy