123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import java.util.ArrayList;
- import java.util.Iterator;
-
- class Tabell<E> implements AbstraktTabell<E> {
- 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<E> {
- 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<E> iterator() {
- return new ListIterator();
- }
- }
|