251 implement 2D array list iterator with remove()

class Vector2D implements Iterator<Integer> {
    private int row = 0;
    private int col = 0;
    private List<List<Integer>> vec;
    public Vector2D(List<List<Integer>> vec2d) {
        vec = vec2d;
    }

    @Override
    public Integer next() {
        return vec.get(row).get(col++);
    }

    @Override
    public boolean hasNext() {
        //if row<vec.size() && col<list.get(row).size() no need to enter while loop,it's true
        //otherwise, go to the next row
        //see if there's any row left
        while(row<vec.size() && col==vec.get(row).size()) {
            col = 0;
            row++;
        }
        return !(row==vec.size());
    }
    @Override
    public void remove() {
    //remove value that is nexted last round
        vec.get(row).remove(col-1);
        col--;
    }
}

results matching ""

    No results matching ""