ArrayList y HashMap son dos clases de colección de uso común en Java. Si bien ambos forman parte del marco de recopilación, la forma en que almacenan y procesan los datos es completamente diferente. En este post veremos las principales diferencias entre estas dos colecciones.

ArrayList vs HashMap en Java

1) Implementación: Lista de matrices implementa la interfaz de lista mientras HashMap es una implementación de la interfaz Map. List y Map son dos interfaces de colección completamente diferentes.

2) Consumo de memoria: ArrayList almacena solo el valor del elemento y mantiene internamente los índices de cada elemento.

 ArrayList<String> arraylist = new ArrayList<String>();
//String value is stored in array list
 arraylist.add("Test String");

HashMap almacena el par de clave y valor. Se debe asociar una clave con cada valor en el HashMap. Esto muestra claramente que el consumo de memoria es alto en HashMap en comparación con ArrayList.

HashMap<Integer, String> hmap= new HashMap<Integer, String>();
//String value stored along with the key value in hash map
 hmap.put(123, "Test String");

3) Pedido: ArrayList mantiene el orden de inserción, mientras que HashMap no. Esto significa que ArrayList devuelve los elementos de la lista en el mismo orden en que se insertaron en la lista. Por otro lado, HashMap no mantiene ningún orden, los pares clave-valor devueltos no se ordenan en ningún tipo de orden.

4) Duplicados: ArrayList permite elementos duplicados pero HashMap no permite claves duplicadas (permite valores duplicados).

5) Nulo: ArrayList puede tener cualquier número de elementos nulos. HashMap permite una clave nula y cualquier número de valores nulos.

6) consigue el método: En ArrayList podemos obtener el elemento especificando su índice. En HashMap, los elementos se recuperan especificando la clave correspondiente.

leer  Cómo encontrar la longitud de ArrayList en Java

Referencias:

Por avivcas

Deja una respuesta

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