反復器Iteratorは遍歴時にremoveできるが集合に要素問題を追加できない

764 ワード

これは私に簡単な筆記試験問題が20分も書けない理由の一つです.
リスト集合のようなものであれば,ループループであればアクセスは問題なく,その間に削除するとエラーが報告されることはよく知られているが,この問題は集合の長さを変えたからであるが,ループ用の元の長さのため,
だからIteratorの優秀な点が現れて、その出現はあなたが削除したい要素を遍歴的に削除することができて、それはwhileで遍歴して、それは下に循環して、つまりwhileの中の判定条件はIterator.hasNext()でbooleanタイプを返して、これを見ても分かります.それはあなたが下に遍歴したい時に先に次の要素が存在するかどうかを調べます.
しかも集合回転Iteratorも面倒ではないので、集合自体にこの方法があります
Iterator it =   .iterator();

黒板をたたく下で2つの重要な忘れやすい間違いを話します
  • 要素を遍歴的に削除するには、集合のremove()メソッドを使用しないで、パラメータはありませんが、反復器のiterator.remove()メソッドを使用します.
  • 反復器で反復するときは集合を修正したり集合に要素を追加したりしないでください.これは間違いです.反復するときに要素を追加すると反復器の構造が破壊されるので、エラーが報告されます.ArrayListを例にとると、中央に遍歴するときは集合の頭に要素を挿入します.集合の構造は間違いないでしょう.その反復器のデータ構造も変わります.反復器の削除方法を使用しているため、反復器に要素を追加していない方法
  • です.