我是Arraylists和迭代器的新手,这是我第一次遇到这个例外 . 我有一个ArrayList你和我想做以下算法:
for (Character c:u){
if(k==1){ //base case
if(isAnswer(s+u.get(0)))
System.out.println(s+u.get(0)+" is the correct sequence."+ '\n');
return;
}
else{
u.remove(c);
puzzleSolve(k-1, s+c , u);
u.add(c);
removeLastChar(s);
}
} //end of for each
当我搜索这个异常时,我发现我无法删除每个arrayl上的iterms weth并且我需要使用迭代器,但是我很困惑我在哪里以及如何确定我必须放入while(iter.hasNext())这段代码就是这样的东西 . 如果你能帮助我,我将不胜感激
PS . s是String(最初为空)&k是int
3 回答
试试这个:
}
您可以使用
iterator
,如下所示:使用泛型初始化列表:
List<Character> u = new ArrayList<Character>();
Hint :在适用的地方使用
iter.remove()
,iter.add()
而不是u.remove()
和u.add()
.你需要从这里开始:http://www.tutorialspoint.com/java/java_using_iterator.htm
当您使用 foreach 循环时,您正在使用 iterator implicitly .
ConcurrentModificationException 在集合被"simultaneously"修改时发生,迭代器通过任何方式通过集合,迭代器除外 .
所以,使用 iterator
如果你需要在循环中修改集合 .