251. Flatten 2D Vector

Implement an iterator to flatten a 2d vector.

For example,
Given 2d vector =

[
  [1,2],
  [3],
  [4,5,6]
]

By callingnextrepeatedly untilhasNextreturns false, the order of elements returned bynextshould be:[1,2,3,4,5,6].

Follow up:
As an added challenge, try to code it using onlyiterators in C++oriterators in Java.

public class Vector2D implements Iterator<Integer> {

    List<Integer> list = new ArrayList<>();
    int index;
    public Vector2D(List<List<Integer>> vec2d) {
        for (List<Integer> vec : vec2d){
            list.addAll(vec);
        }
        index = 0;
    }

    @Override
    public Integer next() {
        return list.get(index++);
    }

    @Override
    public boolean hasNext() {
        return index < list.size();
    }
}

/**
 * Your Vector2D object will be instantiated and called as such:
 * Vector2D i = new Vector2D(vec2d);
 * while (i.hasNext()) v[f()] = i.next();
 */

results for ""

    No results matching ""