Java: diferencias entre ArrayList y HashMap

2021-11-14 - Categorías: General / Java
Arrays colecciones vectores

Este es un codekata, apunte, de copia y pega con algo de código fuente sobre el uso de ArrayList y HashMap. Esto son dos tipos de datos básicos que nos provee Java, que será el siguiente punto de partida cuando tengamos que manejar colecciones de datos de información.

En Java tenemos que definir el tipo de dato y la forma de funcionamiento que queremos que tenga internamente, para obtener un comportamiento mejor de una forma o de otra. Tenemos que a partir de los vectores básicos, el siguiente paso será usar tipos de datos como los ArrayList, HashMap, LinkedList, HashSet, Iterator.. cada uno internamente está construido de una forma.

Cuando usar ArrayList

Los ArrayList son implementaciones de List, colecciones de elementos, y están más pensados para almacenar colecciones de información en las que vamos a añadir elementos, para luego usar su información sin trabajarlos. Si queremos andar modificándolos, borrándolos, añadiendo en medio, etc.. quizá más nos conviene usar los LinkedList. El beneficio principal de usar ArrayList es que tiene un coste fijo al obtener los elementos por su posición en la lista.

Cuando usar HashMap

Los HashMap también son también implementaciones de List, y son al efecto lo mismo que los ArrayList o los LinkedList, pero se trata de arrays asociativos. Es decir, los elementos se identifican por claves definidas como «item1», «item2», «persona1», «ciudad2», etc.. Mantienen esta asociación constante, y es su principal beneficio.

Algo de código fuente usando ArrayList y HashMap

Un manejo básico para comenzar con ArrayList podría ser como el siguiente:

import java.util.ArrayList;
import java.util.List;

public class TestingArrayList {
    public static void main(String[] args) {
        System.out.println("Testing Lists in Java..");

        List<String> list = new ArrayList<String>();

        for (int i = 0; i < 10; i++) {
            list.add("Cadena " + i);
        }

        for (int j = 0; j < 10; j++) {
            System.out.println(list.get(j).toString());
        }
    }
}

…al ejecutarlo se debería de ver algo tal que así:

Algo parecido pero implementado mediante un HashMap podría ser como lo siguiente:

import java.util.ArrayList;
import java.util.HashMap;

public class TestingHashMap {
    public static void main(String[] args) {
        System.out.println("Testing Lists in Java..");

        HashMap<String, String> list = new HashMap<String, String>();

        for (int i = 0; i < 10; i++) {
            list.put("key" + i, "value" + i);
        }

        for (int j = 0; j < 10; j++) {
            System.out.println("key" + j + " = " + list.get("key" + j).toString());
        }
    }
}

…y al ejecutarlo se debería de ver algo así:

Deja una respuesta

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

 

© 2021 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.