Necesito eliminar algunos objetos de un ArrayList
si cumplen una condición y me pregunto qué camino podría ser más eficiente.Eliminar objetos de un ArrayList en Java
Aquí está la situación: tengo una clase que contiene un ArrayList
que contiene algunos otros objetos. Tengo que iterar sobre este ArrayList
y eliminar todos los elementos que cumplan una condición determinada. Por lo que yo sé, los que serían mis opciones para eliminar:
Crear un nuevo
ArrayList
y añadir los elementos que no cumplen la condición. Después de la iteración, cambie de la lista de arrays anterior a la nueva sin los elementos.Crea un nuevo
ArrayList
y agrega los elementos que cumplen la condición. Después de la iteración, use el métodoremoveAll()
pasando elArrayList
con los objetos que se eliminarán.
¿Hay una manera más eficiente de eliminar objetos de un ArrayList
?
A menos que esté realmente seguro de que el rendimiento es un problema en este punto particular de su código, le recomendaría ignorar la eficiencia. Hay otras cosas que debe considerar, por ejemplo: ¿Mantiene referencias a la lista original en otro lugar donde los cambios deberían reflejarse? Entonces no podrías usar 1. Y podrías usar 'ArrayList.remove()', i. mi. ¿la semántica de 'equals()' funciona como lo necesita para los objetos en la lista? –
Bueno, el objeto del que estoy hablando contiene algunas listas de arreglos y tendré que hacer lo mismo en todas ellas. No sé si esto podría ser un cuello de botella (no lo he probado), pero quería saber cómo pueden eliminar elementos para ver si había mejores opciones. Respondiendo a su segunda pregunta: sí, puedo usar el método remove(). –