Java has the nice Iterable interface (since Java 5, i guess) that allows object oriented loops like
List<String> strings = new ArrayList<String>(); for(String string : strings) System.out.println(string); |
but guess what, a simple array is not iterable…
In case you need one, feel free to use this one:
package ac.simons; import java.util.Iterator; public class IterableArray<T> implements Iterable<T> { private class ArrayIteratorImpl implements Iterator<T> { private int position = 0; @Override public boolean hasNext() { return data != null && this.position < data.length; } @Override public T next() { return data[position++]; } @Override public void remove() { throw new UnsupportedOperationException(); } } private final T[] data; public IterableArray(T[] data) { this.data = data; } @Override public Iterator<T> iterator() { return new ArrayIteratorImpl(); } } |
No comments yet
Post a Comment