Oltre a tutte le eccellenti soluzioni offerte qui vorrei offrire una soluzione diversa.
Non sono sicuro di poter aggiungere dipendenze, ma se è possibile, è possibile aggiungere lo https://code.google.com/p/guava-libraries/ come dipendenza. Questa libreria aggiunge il supporto per molte operazioni funzionali di base a Java e può rendere il lavoro con le raccolte molto più semplice e più leggibile.
Nel codice ho sostituito il tipo di Elenco con T, dal momento che non conosco il tipo di elenco digitato.
Questo problema può essere risolto con la guava come questo:
List<T> filteredList = new Arraylist<>(filter(list, not(XXX_EQUAL_TO_AAA)));
E da qualche altra parte poi si definiscono XXX_EQUAL_TO_AAA come:
public static final Predicate<T> XXX_EQUAL_TO_AAA = new Predicate<T>() {
@Override
public boolean apply(T input) {
return input.getXXX().equalsIgnoreCase("AAA");
}
}
Tuttavia, questo è probabilmente eccessivo nella vostra situazione. È solo qualcosa che diventa sempre più potente più lavori con le collezioni.
OHW, anche, avete bisogno di queste importazioni statiche:
import static com.google.common.base.Predicates.not;
import static com.google.common.collect.Collections2.filter;
fonte
2013-06-24 16:09:00
Non è possibile rimuovere un elemento da una lista, mentre si sta iterazione di lista detto. Crea una copia e rimuovi gli oggetti da quello, o fallo direttamente all'iteratore. – thegrinner