Généricité et l’infrastructure Collections de Java Virginia Aponte CNAM-Paris 25 mars 2019 VirginiaAponte (CNAM-Paris) NFA035 25mars2019 1/44 1. Présentation de collections VirginiaAponte (CNAM-Paris) NFA035 25mars2019 2/44 L’infrastructure des collections de Java C’estquoi? bibliothèqueJava(interfaces+classes)pourimplanterdes structuresdedonnéesabstraitesetréutilisables. Comment? unecollectionestunobjetquicontientd’autresobjets; Utilité? pourstockeretmanipulercescollectiond’objetsviades algorithmesconnusetefficaces, Où? danslepaquetagejava.util VirginiaAponte (CNAM-Paris) NFA035 25mars2019 3/44 Approche unifiée Stockeretmanipulerdescollectionsd’objets Suivantdifférentesmanièresdelesorganiser, Composéede: hiérachied’interfacesgénériques:cesontleurstypes; hiérarchiedeclassesgénériquespourimplantercesinterfaces; classesutilitaires : (Implantationd’algorithmes)tris,recherche,etc, conversionentretableauxetcollections,utilitairestableaux, Généricité Interfaces,classes,réutilisablessurtoutesortedetypesd’éléments/ collectionsconcrètes. VirginiaAponte (CNAM-Paris) NFA035 25mars2019 4/44 Hiérarchie d’interfaces (extrait) collections Iterable <E> Map<K,V> Collection <E> SortedMap<K,V> List<E> Queue <E> Set<E> SortedSet<E> extends <E>:typegénériqueEpourlesélémentsd’unecollection VirginiaAponte (CNAM-Paris) NFA035 25mars2019 5/44 Interface Collection<E> : quelles opérations? Collection:objetcontenantunequantitéindeterminéed’objets. Principalesopérations: taillecollection,testersivide; testerégalité,appartenance; ajout/supression; parcours(viaitérateur)d’unecollection; conversionversuntableau; Plusbasdanslahiérarchie: Interfacesdérivées:List<E>,Set<E>,Queue<E>... Beaucoupdeclassesimplantation:ArrayList<E>,LinkedList<E>, PriorytyQueue<E>,HashSet<E>,TreeSet<E>... VirginiaAponte (CNAM-Paris) NFA035 25mars2019 6/44 Interface Collection<E> (extrait) public interface Collection<E> extends Iterable<E> { int size(); boolean isEmpty(); boolean add(E o); boolean remove(Object o); boolean equals(Object o); boolean contains(Object o); T [] toArray(); Iterator<E> iterator(); lesclasses quiimplantentcetteinterface ⇒possèdentaumoinstoutescesméthodes; add, removeretournenttruesil’opérationapus’effectuer. VirginiaAponte (CNAM-Paris) NFA035 25mars2019 7/44 2. Object et égalité en Java VirginiaAponte (CNAM-Paris) NFA035 25mars2019 8/44 Object : racine de la hiérarchie de classes LaclasseObjectsetrouveàlaracinedetoutesleshiérarchiesd’interfaceset desclassesJava. extends implements Object Compte Date Affichable CompteRemunere CompteAvecDecouvert public class Object { public boolean equals (Object o){ ...} public String toString() {...} ... // autres methodes } VirginiaAponte (CNAM-Paris) NFA035 25mars2019 9/44 Les méthodes d’ Object : dans tous les objets! contientdesméthodesindispensables:equals,toString,etc présentespardéfaut: danstoutobjetETavecuneimplantation«pardéfaut». Ex:o1.equals(o2)comparelesadressesdeo1etdeo2; leslibrairiesJavas’enservent! Ex:containsutiliseequalslorsdelarecherched’unobjet; System.out.printutilisetoStringpourafficherunobjet. Bonne pratique RedéfinirlesméthodesdeObjectpourunfonctionnementadaptéàlaclasse courante. VirginiaAponte (CNAM-Paris) NFA035 25mars2019 10/44
Description: