首先是两种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();
}
}