package mikera.vectorz.impl;

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

/**
 * Specialised iterator for a repeated Double value.
 * 
 * This is useful to minimise memory pressure in several quite common cases 
 * where you don't want to re-box a double value for every step.
 * 
 * @author Mike
 */
public class RepeatedElementIterator implements Iterator {
	long n;
	final Double value;
	
	public RepeatedElementIterator(long count, Double value) {
		this.value=value;
		n=count;
	}
	
	@Override
	public boolean hasNext() {
		return n>0;
	}

	@Override
	public Double next() {
		if (n<=0) throw new NoSuchElementException("Iterator has already been traversed!");
		n--;
		return value;
	}

	@Override
	public void remove() {
		throw new UnsupportedOperationException();
	}

}

 

Ads help maintain this website.