*LeetCode-Flatten 2D Vector

来源:互联网 发布:bu大都会学院知乎 编辑:程序博客网 时间:2024/06/07 08:22

首先是两种iterator的《》里面写什么 第一次写的时候多写了一层

    Iterator <Integer> col;
    Iterator <List<Integer>> row;

才是对的

然后注意可能有一些list是空的 要在hasnext就挪到下一个不空的地方去

然后在next里面call hasnext

public class Vector2D {    Iterator <Integer> col;    Iterator <List<Integer>> row;    public Vector2D(List<List<Integer>> vec2d) {        row = vec2d.iterator();        if ( row.hasNext() )            col = row.next().iterator();        else{            col = new ArrayList<Integer>().iterator();        }    }    public int next() {        hasNext();        return col.next();    }    public boolean hasNext() {        while ( !col.hasNext() && row.hasNext() )            col = row.next ().iterator();        return col.hasNext();    }}



0 0