oop/src/uebung09/iterator/Array2dIterator.java
2024-06-14 01:12:27 +02:00

74 lines
1.6 KiB
Java

package uebung09.iterator;
import java.util.ArrayList;
import java.util.Iterator;
public class Array2dIterator<T> implements Iterator<T>{
private T[][] array;
private ArrayList<T> 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<T> flatten(){
ArrayList<T> 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;
}
}