0

と の 2 つのタイプのリストがありList<Integer[]>ます。A.UnassignedA.Shanghai

私は次のことを試しました:

Iterator<Integer[]> UnassignedIt = A.Unassigned.iterator();
A.Shanghai.add(UnassignedIt.next());
UnassignedIt.remove();

しかし、それは次のようになりますNoSuchElementException:

java.util.AbstractList$Itr.next での java.util.NoSuchElementException (不明なソース)

【どうすれば解決できますか?】

4

2 に答える 2

3

このコードを確認してください:

リスト listA = new ArrayList(); listA.add(1); listA.add(2); listA.add(3);

    List<Integer> listB = new ArrayList<Integer>();

    Iterator<Integer> iterator = listA.iterator();
    while(iterator.hasNext()){
        Integer obj = iterator.next();
        listB.add(obj);
        iterator.remove();
    }

これは、 java.util.NoSuchElementException( を使用して) アクセスしようとしているリストiterator.next()が空の場合に発生します。そのため、それを行う前に確認してくださいiterator.hasNext()

于 2012-10-02T06:32:12.713 に答える
2

を呼び出す前に、イテレータに次のアイテムがあるかどうかを確認しますnext()

Iterator<Integer[]> it = A.Unassigned.iterator();
while (it.hasNext()) {
    Integer intArray = it.next();
    A.Shanghai.add(intArray);
    it.remove();
}

また、ドキュメンテーションは大いに役立つかもしれません。そして、コメント、命名規則などを考慮してください。

于 2012-10-02T06:40:49.367 に答える