Le but de cette section est de vous aider à choisir la bonne classe pour la gestion d’un stock d’objet Java.
Les anciennes classes " Vector " et " Hashtable " du JDK 1.1 ne sont plus à utiliser. La classe Vector, par exemple, est Synchronisée sur le multi-threading.
Elles sont cependant conservées pour maintenir un niveau de compatibilité.
Les classes " Abstract " ne peuvent être utilisées telles quelles.
Interface Set : collection d’éléments non dupliqués et non ordonnés. C’est un ensemble mathématique.
Interface List : collection d’éléments ordonnés et éventuellement dupliqués
Interface Map : collection d’éléments indexés par un index
Interface Sorted : collection maintenant l’ordre des éléments stockés.
Interface Iterator : parcours les éléments d’une collection.
Classe HashMap : Stocke des couples (clef, élément) dans une table d’index.
Classe ArrayList : Stocke les éléments dans un tableau.
Classe LinkedList : Stocke les éléments dans une liste chaînée.
Classe HashSet : Stocke les éléments dans une HashMap, chaque élément étant à la fois clef et index.
La principale différence est l'accès en synchrone ou pas sur les données. Le schéma suivant illustre pourquoi un Iterator ou un Enum doivent êter accédés à partir d'un accès synchrone ou pas.
La croix rouge indique qu'il n'est pas possible d'accéder aux données de l'itérator depuis un second processus
dans le cas où l'itérator est issu du Vector.