gpt4 book ai didi

java - 有什么建议可以避免此 JAVA for 循环中的并发修改问题吗?

转载 作者:行者123 更新时间:2023-12-02 04:43:31 28 4
gpt4 key购买 nike

在此主 for 循环的 else 语句中,我尝试将每个新创建的堆栈添加到我的队列中,并且需要继续在同一个队列上继续操作,直到它为空或找到结束词。

    for (Stack<String> next:wordQ){
if(next.peek().toString().equals(start)){
for(String each:next){
ladder.add(each);
return ladder;
}
}
else {
LinkedList<String> temp2 = new LinkedList<String>();
temp2 = (LinkedList<String>) getWordsOneAway(next.peek().toString());
for ( String nextWord:temp2){
@SuppressWarnings("unchecked")
Stack<String> nextTempStack = (Stack<String>) next.clone();
nextTempStack.push(nextWord);
wordQ.add(nextTempStack);
}
buildLadder(start, next.peek().toString());
}
}

尝试使用迭代器。同样的问题。

Iterator<Stack<String>> myQIter = wordQ.iterator();
while ( myQIter.hasNext()){
Stack<String> tempStack = myQIter.next();
//System.out.println("This is peek: " +tempStack.peek());
if(tempStack.peek().toString().equals(start)){
for(String each:tempStack){
ladder.add(each);
return ladder;
}
}
else {
LinkedList<String> temp2 = new LinkedList<String>();
temp2 = (LinkedList<String>) getWordsOneAway(tempStack.peek().toString());
for ( String nextWord:temp2){
@SuppressWarnings("unchecked")
Stack<String> nextTempStack = (Stack<String>) tempStack.clone();
nextTempStack.push(nextWord);
wordQ.add(nextTempStack);
}
buildLadder(start, tempStack.peek().toString());
}
}

wordQ.add(nextTempStack); This is the issue

最佳答案

因此,您正在迭代列表并随时添加内容。

尝试添加到新的新列表,然后完成迭代,调用 addAll添加到您的原始 Collection

关于java - 有什么建议可以避免此 JAVA for 循环中的并发修改问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29908570/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com