Hay dos formas de vaciar una ArrayList: usando ArrayList.clear () método o con la ayuda de ArrayList.removeAll () método. Aunque ambos métodos hacen lo mismo, la forma en que vacían la lista es bastante diferente.

Veamos primero el siguiente ejemplo, por lo que veremos la implementación y la diferencia entre clear () y removeAll ().

package beginnersbook.com;
import java.util.ArrayList;
import java.io.*;
public class Details
{
    public static void main(String [] args)
    {
       ArrayList<String> al1=new ArrayList<String>();
       al1.add("abc");
       al1.add("xyz");

       System.out.println("ArrayList before clear: "+al1);
       al1.clear();
       System.out.println("ArrayList after clear: "+al1);

       ArrayList<String> al2=new ArrayList<String>();
       al2.add("text 1");
       al2.add("text 2");

       System.out.println("ArrayList before removeAll: "+al2);
       al2.removeAll(al2);
       System.out.println("ArrayList before removeAll: "+al2); 
    }
}

Producción:

ArrayList before clear: [abc, xyz]
ArrayList after clear: []
ArrayList before removeAll: [text 1="text" 2="2" language="1,"][/text]
ArrayList before removeAll: []

Dado que ambos métodos hicieron el mismo trabajo, vaciaron ArrayList. Es hora de determinar qué método ofrece un buen rendimiento.

El código real del método clear ():

public void clear() {
    for (int i = 0; i < size; i++)
        arraylist[i] = null;

    size = 0;
}

Aquí arraylist es una instancia de la clase ArrayList.

Código del método RemoveAll ():

public boolean removeAll(Collection c) {
    boolean ismodified = false;
    Iterator iterator = iterator();
    while (iterator.hasNext()) {
        if (c.contains(iterator.next())) {
            iterator.remove();
            ismodified = true;
        }
    }
    return ismodified;
}

Mirando el código de ambos métodos, podemos decir muy bien que el método clear () ofrece un mejor rendimiento que el método removeAll ().
Rendimiento de claro: O(n)
Rendimiento de removeAll: O(n^2)

leer  Diferencia entre ArrayList y HashMap en Java

Por avivcas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *