View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of Java-Common.
5    *
6    * Java-Common is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * Java-Common is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with Java-Common.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.util;
21  
22  import java.util.Iterator;
23  
24  /**
25   * An iterator for iterating arrays.
26   * 
27   * @author Klemen Zagar, Cosylab
28   * 
29   * @param <T>
30   *            Type of the array.
31   */
32  public class ArrayIterator<T> implements Iterator<T> {
33  	private int index = 0;
34  	private T[] array;
35  	private int length;
36  
37  	public ArrayIterator(T[] array, int length) {
38  		if(array == null && length > 0) {
39  			throw new IllegalArgumentException("Array iterator's length is non-zero, but no array is given.");
40  		}
41  		if(length < 0) {
42  			throw new IllegalArgumentException("Array iterator's length can not be negative.");
43  		}
44  		this.array = array;
45  		this.length = length;
46  	}
47  
48  	public boolean hasNext() {
49  		return this.index < this.length;
50  	}
51  
52  	public T next() {
53  		return this.array[this.index++];
54  	}
55  
56  	public void remove() {
57  		throw new UnsupportedOperationException(
58  				"Removing of elements with array iterator is not possible.");
59  	}
60  }