私はJavaの初心者ですから、Iterator<Iterator<Integer>>
などの値を受け取る必要があります。例えば、我々が持っている可能性がありますイテレータを使用して2次元配列を1D配列のように繰り返します。
{{1, 2}, {3, 4}, {5, 6}}
をnext()
の結果は1
でなければなりません。 next()
もう一度試してみると、2
、3
、4
などです.1D配列から値を1つずつ取得するのと同様ですが、2次元配列から取得すると同じです。私たちはをコピーしないでください何かをコピーしてください。だから、私はいくつかの悪いコードの下に書いた:
public class IteratorNext {
private Iterator<Iterator<Integer>> values = null;
private Iterator<Integer> current;
public IteratorNext(Iterator<Iterator<Integer>> iterator) {
this.values = iterator;
}
public int next() throws NoSuchElementException {
current = values.next();
if (!current.hasNext()) {
values.next();
}
if (!values.hasNext() && !current.hasNext()) {
throw new NoSuchElementException("Reached end");
}
return current.next();
}
}
このコードはnext()
の結果は、その後、その後、5
3
1
あるので、正しくないとので、ここでは例外の。これを修正するには?
あなたは 'のjava-8'を使用していますか?これを行う簡単な方法があります。 – CKing