¿Cómo filtrar elementos de un ArrayList?

publicado por: Anonymous

Tengo un ArrayList con muchos elementos. Quiero que me elimine del ´ArrayList´ los elementos que no son “arbol”.

Hasta ahora he realizado el siguiente código, el cual borra los elementos que no sean árboles:

for(int i=0;i<elementosCreados.size();i++){
           if( elementosCreados.get(i).compareTo("arbol")!=0){
                elementosCreados.remove(i);
            }
}

¿Cómo podría recolocar los elementos del ´ArrayList´ para que no hubiese posiciones vacías?

solución

Si utilizas Java 8 o superior, la solución de @CarlosMuñoz es la más adecuada.

Para Java 7 o inferior, lo puedes realizar utilizando Iterator:

System.out.println(elementosCreados);
Iterator<String> it = elementosCreados.iterator();
while (it.hasNext()) {
    String current = it.next();
    if (!current.equals("arbol")) {
        it.remove();
    }
}
System.out.println(elementosCreados);
Respondido por: user227

Leave a Reply

Your email address will not be published. Required fields are marked *