Cómo utilizar el método removeAll de clases de colección como Java List
Mire primero la definición en jdk:
public boolean removeAll(collection<?>c) {
Booleano modificado= false;
Iterador<? & gtit = iterador();
mientras (it.hasNext()) {
if(c . contiene(it . next()){
it .remove();
Modificado=True;
}
}
Devolver modificado;
}
public boolean remove(object o) {
Iterador & ltE & gtit = iterador()
if (o==null) { p>
mientras (it.hasNext()) {
if (it.next()==null) {
eliminar();
p>
Devuelve verdadero
}
}
} De lo contrario {
mientras (it.hasNext() ) {
if (o.equals(it.next())) {
it eliminar();
devuelve verdadero
<. p>}}
}
Devuelve falso
}
Como puedes ver, cuando el Se llama al método removeAll, remove El método en realidad se llama cíclicamente y hay un código clave en el método de eliminación: if (o.equals(it.next())!
Por ejemplo:
Importar Java. util. ArrayList;
Importar Java . util . list;
Lista de usuarios de clase pública {
Lista de distribución personal<Users>Sublist; p>
Lista de distribución personal & ltUsers& gtallList
Lista de usuarios públicos(){
subList = new ArrayList & ltUsers& gt();
allList = new ArrayList & ltUser& gt();
for(int I = 0;i<3;i++){
Usuario Usuario = new User();
p>usuario .setage(I);
usuario set(" lyh "+I
subList.add(usuario); /p>
for(int I = 0;i<10;i++){
Usuario Usuario = nuevo Usuario();
usuario setage( I);
usuario . set nombre(" lyh "+I);
allList.add(usuario);
}
}
Public static void main(String[] args){
UserList userList = nueva lista de usuarios();
lista de usuarios eliminar todo (lista de usuarios. sublista); // Llama al método removeAll
system . println(userlist . all list .
size());
}
}
Resultado real:
El resultado es 10.