Quels sont les différents types de collections en Java?

Nous concluons cette section avec une révision de toutes les classes de collections. Assurez-vous que vous pouvez compléter le Tableau 9.8 pour comparer les quatre types de collections de mémoire.

TABLEAU 9.8 Types du Framework de Collections Java

TypePeut contenir des éléments en double?Éléments toujours ordonnés?Possède des clés et des valeurs?Doit ajouter/supprimer dans un ordre spécifique?
ListOuiOui (par index)NonNon
MapOui (pour les valeurs)NonOuiNon
QueueOuiOui (récupérées dans un ordre défini)NonOui
SetNonNonNonNon

De plus, assurez-vous que vous pouvez compléter le Tableau 9.9 pour décrire les types.

TABLEAU 9.9 Attributs des Collections

TypeInterface du Framework de Collections JavaTrié?Appelle hashCode?Appelle compareTo?
ArrayDequeDequeNonNonNon
ArrayListListNonNonNon
HashMapMapNonOuiNon
HashSetSetNonOuiNon
LinkedListList, DequeNonNonNon
TreeMapMapOuiNonOui
TreeSetSetOuiNonOui

Ensuite, vous devez savoir quelles structures de données permettent les valeurs null. Les structures de données qui impliquent un tri ne permettent pas les valeurs null.

Enfin, vous devez être capable de choisir le bon type de collection étant donné la description d’un problème. Nous recommandons d’abord d’identifier quel type de collection est demandé. Déterminez si vous cherchez une liste, une carte, une file d’attente ou un ensemble. Cela vous permet d’éliminer un certain nombre de réponses. Ensuite, vous pouvez déterminer laquelle des options restantes est la meilleure réponse.

Scénario du Monde Réel

Collections Anciennes

Il existe quelques collections qui ne sont plus à jour mais que vous pourriez rencontrer dans du code plus ancien. Ces trois structures étaient les premières structures de données Java que vous pouviez utiliser avec des threads :

  • Vector: Implémente List.
  • Hashtable: Implémente Map.
  • Stack: Implémente Queue.

Ces classes sont rarement utilisées de nos jours, car il existe de bien meilleures alternatives concurrentes que nous couvrons dans le Chapitre 13.