
Avant Java 2, Java a fourni des classes ad hoc telles que Dictionary, Vector, Stack et Properties pour stocker et manipuler des groupes d'objets. Bien que ces classes aient été très utiles, ils manquaient d'un thème central et unificateur. Ainsi, la façon dont vous avez utilisé Vector était différente de la façon dont vous avez utilisé les Properties.
Les collections ont été conçues pour atteindre plusieurs objectifs.
Dans ce but, l'ensemble du cadre de collections est conçu autour d'un ensemble d'interfaces standard. Plusieurs implémentations standard telles que LinkedList, HashSet et TreeSet, de ces interfaces sont fournies que vous pouvez utiliser tel quel et que vous pouvez également implémenter votre propre collection, si vous choisissez.
Un cadre de collections est une architecture unifiée pour représenter et manipuler des collections. Tous les frameworks de collections contiennent les éléments suivants:
En plus des collections, le cadre définit plusieurs interfaces et classes de mappage. Ce mappage stocke des paires de clés/valeurs. Bien que les mappages ne soient pas des collections dans l'utilisation correcte du terme, mais elles sont entièrement intégrées aux collections.
Les collections définissent plusieurs interfaces. Cette section fournit un aperçu de chaque interface:
SN |
Interfaces avec description |
1 |
Collection |
2 |
List |
3 |
Set |
4 |
SortedSet |
5 |
Map |
6 |
Map.Entry |
7 |
SortedMap |
8 |
Enumeration |
Java fournit un ensemble de classes de collection standard qui implémentent des interfaces de collection. Certaines des classes fournissent des implémentations complètes qui peuvent être utilisées tel quel et d'autres sont des classes abstraites, fournissant des implémentations squelettiques qui sont utilisées comme points de départ pour créer des collections concrètes.
Les classes de collection standard sont résumées dans le tableau suivant:
SN |
Classes avec description |
1 |
AbstractCollection |
2 |
AbstractList |
3 |
AbstractSequentialList |
4 |
LinkedList |
5 |
ArrayList |
6 |
AbstractSet |
7 |
HashSet |
8 |
LinkedHashSet |
9 |
TreeSet |
dix |
AbstractMap |
11 |
HashMap |
12 |
TreeMap |
13 |
WeakHashMap |
14 |
LinkedHashMap |
15 |
IdentityHashMap |
Les classes AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList et AbstractMap fournissent des implémentations squelettiques des interfaces de collection de noyau, afin de minimiser les efforts nécessaires à leur mise en œuvre.
Les classes héritées suivantes définies par java.util ont été discutées dans le chapitre précédent:
SN |
Classes avec description |
1 |
Vector |
2 |
Stack |
3 |
Dictionary |
4 |
Hashtable |
5 |
Properties |
6 |
BitSet |
Le cadre de collections définit plusieurs algorithmes pouvant être appliqués aux collections et aux Maps. Ces algorithmes sont définis comme des méthodes statiques dans la classe Collections.
Plusieurs des méthodes peuvent lancer une ClassCastException, qui se produit lorsqu'une tentative est faite pour comparer des types incompatibles, ou UnsupportedOperationException, qui se produit lorsqu'une tentative est faite pour modifier une collection non modifiable.
Les collections définissent trois variables statiques: EMPTY_SET, EMPTY_LIST et EMPTY_MAP. Tous sont immuables.
Souvent, vous voudrez parcourir les éléments d'une collection. Par exemple, vous pouvez afficher chaque élément.
La façon la plus simple de le faire est d'utiliser un itérateur, qui est un objet qui implémente l'interface Iterator ou ListIterator.
Iterator vous permet de parcourir une collection, d'obtenir ou de supprimer des éléments. ListIterator étend Iterator pour permettre une traversée bidirectionnelle d'une liste et la modification des éléments.
TreeSet et TreeMap stockent les éléments en ordre trié. Cependant, c'est le comparateur qui définit précisément ce que signifie l’ordre trié.
Cette interface nous permet de trier une collection donnée de différentes façons. De plus, cette interface peut être utilisée pour trier toutes les instances de toute classe (même les classes que nous ne pouvons pas modifier).
Le cadre de collections Java donne au programmeur l'accès aux structures de données préemballées ainsi qu'aux algorithmes de manipulation.
Une collection est un objet qui peut contenir des références à d'autres objets. Les interfaces de collection déclarent les opérations qui peuvent être effectuées sur chaque type de collection.
Les classes et les interfaces du cadre de collections sont dans le paquetage java.util.