私は私の質問を開始する前に、私はいくつかの他のトピックを読んで行なったし、私は少し周りをしようとしたことに言及したいと思いますが、イム本当に混乱して気圧ので、私はちょうど尋ねるだろう考え出し。:各
だから、私は何をしたいことは、それぞれのセットを介して、その中にそれぞれに使用することをセットに要素を追加し、また、それらを反復処理です。 私は他の場所で、次がわかったソリューション:
for(Object obj : new HashSet<Object>(oldSet))
私はしかし、私はこれが最初では正しいアプローチであれば、本当にわからないイム一致したいのですが、最後の要素の一部が欠けておく、ということを試みました場所?
具体的には、これは私のコードがどのように見えるか、基本的である:
再びfor(Position pos : new HashSet<Position>(oldSet){
for(Delta delta : deltas){
if(board.getTokenAt(pos.plus(delta).equals(initial){
hitList.add(pos.plus(delta);
oldSet.add(pos.plus(delta);
}
}
oldSet.remove(pos);
}
、私はちょうど私のアプローチが間違っているかどうかを知りたいのですか、私のコードの他の場所でエラーがなければならないので、私何を見るかを知っている。 ありがとうございます!
、通常、あなたが反復処理されているコレクションを変更しないでくださいイテレータを使用してみてください。 – ochi
イテレータはこの動作をサポートしません。 BlockingQueueを使用してみても構いませんが、for構文では使用できません。 –
イテレータは最初のセットを反復するだけですね。 また、セットのイテレーションを追加すると、同時変更例外afaikが発生しますか? –