Collections en Java – Partie 1 Virginia Aponte CNAM-Paris 17 septembre 2021 VirginiaAponte (CNAM-Paris) NFA035 17septembre2021 1/46 Présentation des collections VirginiaAponte (CNAM-Paris) NFA035 17septembre2021 2/46 Principes de l’infrastructure « Collections » C’estquoi? bibliothèqueJavadéfinissantdesstructuresdedonnéespour stocker/chercher/manipulerdesobjetsviadesalgorithmes connusetefficaces, Exemples listesd’objets;ensemblesd’objets(ordonnésoupas);files, piles,dictionnairesassociantclésetvaleurs,etc. Endétail unecollectionestunobjetquipointeverssesobjetsmembres. Ilssontorganisésdediversesmanièresselonletypede collection.Unecollectionpossèdedesopérationspour stocker/chercherdesobjets. Réutilisables Leurdéfinitionestgénérique⇒leurcodeestréutilisablepour stockertouttyped’objet. Où? danslepaquetagejava.util VirginiaAponte (CNAM-Paris) NFA035 17septembre2021 3/46 Organisation de la infrastucture Principe Approcheunifiéepourreprésenteretmanipulerlescollectionsd’objets,quel quesoitletypedesobjets,etlamanièredontonlesorganise. 1 Hiérachied’interfaces:chacunemodéliseunmoded’organiserles objetsauseindelacollection opérationsadaptéesàcetorganisation, pourobjetsdetoutesorte(génériques),notés<E>; Ex:interfaceList<E>correspondauxséquencesd’objetsd’un type«E»quelconque. 2 HiérarchiedeClasses:plusieursimplantationsp/chaqueinterface; Ex:ArrayList<E>etLinkedList<E>sontdesimplantationsde List<E>. VirginiaAponte (CNAM-Paris) NFA035 17septembre2021 4/46 Infrastructure : interfaces + classes (extrait) VirginiaAponte (CNAM-Paris) ImportantN:FcA0o35nsulter la Javado1c7sepptoemubrre2t0o21ute5s/46 <E>:typegénériqueEpouréléments ces collections! Organisation de l’infrastructure Lesstructuresdesdonnéessontorganiséesen2hiérarchiesindépendantes d’interfacesgénériques+desclassesconcrètesquilesimplantent. 2 hiérarchies d’interfaces Hiérarchie«Collection» Collectionsproprementdites.Racine:Collection<E> Objetsmembres«misàplat».Ex:listes,ensembles,piles; Hiérarchie«Map» dictionnairesassociatifs contenantdescouples(clés,valeurs); Racine:Map<E> contiennentdesextensions(héritage)oùlesmembressontordonnés; VirginiaAponte (CNAM-Paris) NFA035 17septembre2021 6/46 2 Hiérarchies d’interfaces (extrait) héritageentreinterfaces⇒interface«fille»plusriche(+deméthodes) queson«ancêtre»;apporteuneorganisationparticulièreauxobjetsde lacollection+sensadaptépourlesopérations. généricité:utilisablesavectouttypeobjet«E»(quelconque); types Iterable <E> quelconques 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 17septembre2021 7/46 Extrait : interfaces + classes implantantion (listes + files) «List»:séquencesd’objets(detype<E>);chacunauneposition. «Files»:lesopérationsd’ajoutetderetraitsefontsouventsurles extremités. Interfaces Iterable <E> extends Collection <E> implements List<E> Queue <E> Classes LinkedList<E> ArrayList<E> PriorityQueue<E> <E>V:irtgyipneiagAépnoénritqeue(CENpAoMu-rPleasrisé)léments NFA035 17septembre2021 8/46 L’interface Collection<E> Idée Interfacelaplusgénéraleparmilescollections.Lesmembresd’une collectionsont«àplat»ETsanscontrainted’organisation. chaqueinterfacefilleapporteunmoded’organisation Opérations: size, isEmpty, contains:taille,testersivide,tester appartenanced’unobjet. add, remove:ajouter,enleverunobjet. iterator:fabriqueunobjetpermettantd’accèderunàunauxobjets membresdelacollection. VirginiaAponte (CNAM-Paris) NFA035 17septembre2021 9/46 Interface Collection<E> (extrait) public interface Collection<E> extends Iterable<E> { int size(); boolean isEmpty(); boolean add(E o); boolean remove(Object o); boolean contains(Object o); Iterator<E> iterator(); // fabriquer un objet pour // parcourir la collection E[] toArray(E[] t); lesclasses quiimplantentcetteinterface ⇒possèdentcesméthodes; add, removeretournenttruesil’opérationapus’effectuer. VirginiaAponte (CNAM-Paris) NFA035 17septembre2021 10/46
Description: