package oving5.stringgrid; public class StringGridIterator { private StringGrid grid; private boolean rowMajor; private int i = -1; public StringGridIterator(StringGrid grid, boolean rowMajor) { this.grid = grid; this.rowMajor = rowMajor; } public boolean hasNext() { return (i + 1) < (grid.getRowCount() * grid.getColumnCount()); } public String next() { if (hasNext()) { i += 1; if (rowMajor) { return grid.getElement(i / grid.getColumnCount(), i % grid.getColumnCount()); } else { return grid.getElement(i % grid.getRowCount(), i / grid.getRowCount()); } } throw new IllegalArgumentException(); } public void remove() { throw new UnsupportedOperationException(); } }