我allWordsList
是这样的:[aaa, bbb, ccc, ddd, eee]
如何删除列表迭代,而不ConcurrentModificationException的
如何使allWordsList
复印件(tempWordsList
)在
for (String aWord : aWordsList)
没有迭代项目(即实现[bbb, ccc, ddd, eee]
,然后[aaa, ccc, ddd, eee]
等等...)?
public class Anagrams {
List<String> allWordsList = new ArrayList<String>();
List<List<String>> myList = new ArrayList<List<String>>();
List<String> tempWordsList = new ArrayList<String>();
public Anagrams(String allWords) {
getWordsList(allWordsList, allWords); // getting List to copy here
getAnagramWordsList(allWordsList);
}
private void getAnagramWordsList(List<String> aWordsList) {
for (String aWord : aWordsList){
//tempWordsList.clear();
tempWordsList = aWordsList;
for (Iterator<String> iterator = tempWordsList.iterator(); iterator.hasNext();) {
String string = iterator.next();
if (string == aWord) {
// Remove the current element from the iterator and the list.
iterator.remove();
}
}
myList.add(tempWordsList);
System.out.println(aWordsList);
System.out.println(tempWordsList); //before error both lists are without first item...
}
}
}
我经历了一些类似的情况,但仍然不明白。
您可以'iterator'循环更改为'for'循环。因此,您可以删除等于“aWord”的索引。 –
您应该使用.equals()作为字符串,而不是== –