package uebung09.iterator; import java.util.ArrayList; import java.util.Iterator; public class Array2dIterator implements Iterator{ private T[][] array; private ArrayList list; private int index = 0; public Array2dIterator(T[][] array) { this.array = array; list = flatten(); } @Override public boolean hasNext() { // for (int i = 0; i < array.length; i++) { // for (int j = 0; j < array[i].length; j++) { // if (array[i][j+1] != null) { // return true; // } // if (array[i+1][j] != null) { // return true; // } // } // } // return false; if (list.get(index)) { return true; } else { return false; } // return true; } @Override public T next() { // for (int i = 0; i < array.length; i++) { // for (int j = 0; j < array[i].length; j++) { // if (array[i][j+1] != null) { // return array[i][j+1]; // } // } // if (array[i+1][0] != null) { // return array[i+1][0]; // } // } // return null; return list.get(index++); } private ArrayList flatten(){ ArrayList list = new ArrayList<>(); for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { list.add(array[i][j]); } } return list; } }