Freqüentemente queremos excluir certos elementos de uma coleção. Alguns podem escrever isso.
Copie o código do código da seguinte forma:
operação void pública (lista lista){
for (Iterador it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
lista.remove(str);
}
}
}
Assim que este método de escrita for executado, a seguinte exceção será relatada:
Exceção no thread "principal" java.util.ConcurrentModificationException
em java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
Porque os elementos da lista não podem ser excluídos enquanto ela estiver no loop. Mais tarde fiz isso, um método muito estúpido. A ideia é a seguinte: Criar uma Lista para armazenar especificamente os elementos a serem excluídos. O código é o seguinte:
Copie o código do código da seguinte forma:
operação void pública (lista lista){
Lista removeList= new ArrayList();
for (Iterador it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
removeList.add(str);
}
}
lista.removeAll(removeList);
}
Isso pode realmente resolver o problema, mas o método é muito complicado. Na verdade, pode haver um método mais simples e eficiente, que é usar o método Iterator.remove, como segue:
Copie o código do código da seguinte forma:
for (Iterador it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
it.remove();
}
}
Portanto, quanto mais você conhecer o básico de Java, mais simples será o seu código. Pelo contrário, se o seu código for particularmente complexo, deve haver algo errado com o método ou design.