Las listas representan un orden secuencial de elementos. Los mapas se utilizan para representar una colección de pares clave / valor.
Si bien puede usar un mapa como lista, existen algunas desventajas definidas de hacerlo.
Mantener el orden:
- Se ordena una lista por definición. Agrega elementos y luego puede volver a recorrer la lista en el orden en que insertó los elementos. Cuando agrega elementos a un HashMap, no se le garantiza recuperar los elementos en el mismo orden en que los puso. Hay subclases de HashMap como LinkedHashMap que mantendrán el orden, pero en general el orden no está garantizado con un Mapa.
Semántica de clave / valor:
- El propósito de un mapa es almacenar elementos basados en una clave que se puede utilizar para recuperar el elemento en un momento posterior. Una funcionalidad similar solo se puede lograr con una lista en el caso limitado de que la clave sea la posición en la lista.
Legibilidad del código
Considere los siguientes ejemplos.
list.add(myObject);
map.put(myKey, myObject);
map.put("1", myObject);
for (Object o : myList)
for (Object o : myMap.values())
Funcionalidad de colección
Algunas funciones de gran utilidad están disponibles para listas a través de la clase Colecciones. Por ejemplo ...
Collections.shuffle(myList);
Collections.sort(myList, myComparator);
Espero que esto ayude,
Lists
yMaps
son dos estructuras de datos completamente diferentes, con operaciones e invariantes diferentes. ¿Puede explicar el contexto / los requisitos en los que está pensando dónde ambas serían soluciones aceptables?