import java.util.ArrayList; import java.util.Iterator; class Tabell implements AbstraktTabell { private E[] arr; Tabell(int len) { arr = (E[])(new Object[len]); } public E hent(int index) { return arr[index]; } public boolean settInn(int index, E val) { //Expand table automatically if necessary if (index >= arr.length) { int len = arr.length; while (len <= index) len *= 2; E[] nw = (E[])(new Object[len]); for (int i = 0; i < arr.length; ++i) { nw[i] = arr[i]; } arr = nw; } try { arr[index] = val; } catch (Exception ex) { return false; } return true; } class ListIterator implements Iterator { private int index = 0; public boolean hasNext() { return index < arr.length; } public E next() { E val = arr[index++]; while (index < arr.length && arr[index] == null) index += 1; return val; } ListIterator() { while (index < arr.length && arr[index] == null) index += 1; } }; public Iterator iterator() { return new ListIterator(); } }