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

com.fasterxml.jackson.databind.util.ArrayIterator Maven / Gradle / Ivy

There is a newer version: 2.17.0
Show newest version
package com.fasterxml.jackson.databind.util;

import java.util.Iterator;
import java.util.NoSuchElementException;

/**
 * Iterator implementation used to efficiently expose contents of an
 * Array as read-only iterator.
 */
@SuppressWarnings("IterableAndIterator") // only used internally, not exposed via API
public class ArrayIterator implements Iterator, Iterable // lgtm [java/iterator-implements-iterable]
{
    private final T[] _a;
    
    private int _index;

    public ArrayIterator(T[] a) {
        _a = a;
        _index = 0;
    }
    
    @Override
    public boolean hasNext() { return _index < _a.length; }

    @Override
    public T next() {
        if (_index >= _a.length) {
            throw new NoSuchElementException();
        }
        return _a[_index++];
    }

    @Override public void remove() { throw new UnsupportedOperationException(); }
    @Override public Iterator iterator() { return this; }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy