【发布时间】:2014-08-14 04:06:18
【问题描述】:
我有以下方法:
//Cleans any stop words at the beginning of the sentence, returns the remaining
//sentence.
public static String cleanBeginning(String sentence, boolean skipEmpty)
{
List<String> words = Common.getWords(sentence, skipEmpty);
int i = 0;
Iterator<String> iterator = words.iterator();
while (iterator.hasNext() )
{
String word = iterator.next();
if ( stopWords.contains( word.toLowerCase() ) )
{
words.remove(i);
continue;
}
break;
}
StringBuilder sb = new StringBuilder();
for (String cleanedWord : words)
{
sb.append(cleanedWord ).append(" ");
}
return sb.toString().trim();
}
上线:
String word = iterator.next();
我收到了java.util.ConcurrentModificationException。这是为什么?我认为iterator.next() 应该是循环遍历数组列表的安全方法?我做错什么了吗?
【问题讨论】:
-
仅使用迭代器进行迭代是不够的。您也必须通过它进行更改。
标签: java