9.3 Ensembles
Les ensembles sont des classes génériques prédéfinies, utiles lorsque l’on a besoin de variables faisant référence à plusieurs éléments.
Trois sont communément utilisés :
- les tableaux : `T[]`
- les collections : `List<T>`
- les dictionnaires clé/valeur : `Map<K,V>`
Ces trois ensembles possèdent des méthodes semblables qui permettent d’ajouter, de récupérer, de modifier, de supprimer des informations, de connaître la taille de l’ensemble.
9.3.1 Interfaces : un niveau d’abstraction
Dans les classes prédéfinies, seules les classes les plus précises sont concrètes : toutes les autres sont des interfaces génériques.
Héritage :
classeObject< interfaceIterable<T>< interfaceCollection< interfaceList< classes concrètes commeArrayList,LinkedList< interfaceSet< classes concrètes commeEnumSet,HashSet,LinkedHashSet,TreeSet< interfaceMap<K,V>< classes concrètes commeEnumMap,HashMap,Hashtable,Properties,TreeMap
Par convention, on utilise le transtypage en déclarant une
List<T>, unSet<T>ou unMap<K,V>que l’on initialise avec la sous-classe de notre choix.
Cela permet de faciliter la mise à jour du code si on décide d’utiliser une autre sous-classe : on ne modifie que le constructeur.
Par exemple :List<Integer> entiers = new ArrayList<Integer>;