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
Type | Peut 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? |
---|---|---|---|---|
List | Oui | Oui (par index) | Non | Non |
Map | Oui (pour les valeurs) | Non | Oui | Non |
Queue | Oui | Oui (récupérées dans un ordre défini) | Non | Oui |
Set | Non | Non | Non | Non |
De plus, assurez-vous que vous pouvez compléter le Tableau 9.9 pour décrire les types.
TABLEAU 9.9 Attributs des Collections
Type | Interface du Framework de Collections Java | Trié? | Appelle hashCode? | Appelle compareTo? |
---|---|---|---|---|
ArrayDeque | Deque | Non | Non | Non |
ArrayList | List | Non | Non | Non |
HashMap | Map | Non | Oui | Non |
HashSet | Set | Non | Oui | Non |
LinkedList | List, Deque | Non | Non | Non |
TreeMap | Map | Oui | Non | Oui |
TreeSet | Set | Oui | Non | Oui |
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émenteList
.Hashtable
: ImplémenteMap
.Stack
: ImplémenteQueue
.
Ces classes sont rarement utilisées de nos jours, car il existe de bien meilleures alternatives concurrentes que nous couvrons dans le Chapitre 13.