Les listes représentent un ordre séquentiel d'éléments. Les cartes sont utilisées pour représenter une collection de paires clé/valeur.
Vous pouvez utiliser une carte comme une liste, mais cela présente des inconvénients certains.
Maintenir l'ordre : - Par définition, une liste est ordonnée. Vous ajoutez des éléments et vous êtes ensuite en mesure d'itérer dans la liste dans l'ordre dans lequel vous avez inséré les éléments. Lorsque vous ajoutez des éléments à un HashMap, vous n'avez pas la garantie de récupérer les éléments dans le même ordre que celui dans lequel vous les avez insérés. Il existe des sous-classes de HashMap comme LinkedHashMap qui maintiennent l'ordre, mais en général, l'ordre n'est pas garanti avec une Map.
Sémantique clé/valeur : - Le but d'une carte est de stocker des éléments sur la base d'une clé qui peut être utilisée pour retrouver l'élément à un moment ultérieur. Une fonctionnalité similaire ne peut être obtenue avec une liste que dans le cas limité où la clé se trouve être la position dans la liste.
Lisibilité du code Considérez les exemples suivants.
// Adding to a List
list.add(myObject); // adds to the end of the list
map.put(myKey, myObject); // sure, you can do this, but what is myKey?
map.put("1", myObject); // you could use the position as a key but why?
// Iterating through the items
for (Object o : myList) // nice and easy
for (Object o : myMap.values()) // more code and the order is not guaranteed
Fonctionnalité de la collection De grandes fonctions utilitaires sont disponibles pour les listes via la classe Collections. Par exemple ...
// Randomize the list
Collections.shuffle(myList);
// Sort the list
Collections.sort(myList, myComparator);
J'espère que cela vous aidera,