[PDF] cours php pdf complet
[PDF] parcours 3éme année du cycle secondaire collégial
[PDF] guerre et conflit en europe au xxe siecle cap
[PDF] la grenouille ? grande bouche cycle 1
[PDF] grenouille grande bouche petite section
[PDF] la grenouille ? grande bouche exploitation gs
[PDF] la grenouille ? grande bouche exploitation cp
[PDF] images séquentielles la grenouille ? grande bouche
[PDF] sequence guerre et conflits cap
[PDF] sequence parcours de personnage super heros
[PDF] parcours en profondeur d'un graphe en c
[PDF] parcours en profondeur itératif
[PDF] algorithme parcours en profondeur python
[PDF] parcours lecture acces pas cher
![Les collections en Java - UNIGE Les collections en Java - UNIGE](https://pdfprof.com/Listes/18/27735-18collections.pdf.pdf.jpg)
ISIAutomne 2022 -L. NerimaCollections2RéférencesvProgrammer en Java, Claude Delannoy, 11e édition, Eyrolles, 2020, Chapitre 22 "Les collections et les algorithmes»-Disponible à la bibliothèque du CUI, BattelleBât DvConception objet en Java avec BlueJ, David Barnes et Michael Kölling, 4eédition, Pearson Education, 2009vDocumentation de l'API Java SE 11, package java.utilhttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/module-summary.html
ISIAutomne 2022 -L. NerimaCollections3PlanvCollections de données (définition) vLes collections en JavavLes interfaces racine Collection et MapvDigression 1: les interfaces JavavDigression 2: les classes génériquesvLes collections de données:1.Les tableaux dynamiques: la classe ArrayList2.Les listes: la classe LinkedList3.Les ensembles: la classe HashSet (TreeSet)4.Les fonctions (map): la classe HashMap
ISIAutomne 2022 -L. NerimaCollections4Collection de donnéesvDéfinition: "Une collection de données est un conteneur d'éléments de même type qui possède un protocole particulier pour l'ajout, le retrait et la recherche d'éléments»vExemples: pile, queue (file d'attente), séquence, ensemble et multi-ensemble, fonction (tableau associatif, dictionnaire ou map en anglais) vOrdre dans les collections: vLes ensembles et les multi-ensembles n'ont pas d'ordrevLes autres collections ont un ordre "naturel» lié à l'ordre dans lequel les éléments ont été insérés dans la collectionvLes classes collection sont définies dans le package java.utilvDéfinies à partir de deux Interfaces JavavCollectionvMap
ISIAutomne 2022 -L. NerimaCollections5Les collections en Java -CollectionvDéfinies à partir de la racine Interface Collection
ISIAutomne 2022 -L. NerimaCollections6Les collections en Java -Map (fonction)vLes collections de type fonction(map), tableau associatifou dictionnaireen Java, sont définies à partir de la racine Interface Map
1: les Interfaces JavavRessemblent aux classes abstraites mais...vToutes les méthodes sont vides (non implémentées), seule la signature des méthodes est définiesignature = entête de la méthodec-à-d le nomde la méthode et la liste des paramètres formelsvAucun champ n'est défini dans une interface, hormis les constantes vCôté client (classes implémentant une interface):vLes classes pourront implémenter plusieurs Interfaces (~ proche de l'héritage multiple)vToutes les méthodes de l'interface devront être implémentées
ISIAutomne 2022 -L. NerimaCollections8Définition et implémentation d'une Interface JavavDéfinitionpublic interface I1{ void m(int i); // signature de la méthode m}public interface I2char n(); // signature de la méthode n}vImplémentation de(s) l'interface(s)class A implements I1, I2{ // implémentation obligatoire des méthodes m et n de I1 et I2}
ISIAutomne 2022 -L. NerimaCollections10Pour chacune des 4 collections, nous étudieronsvles caractéristiques de la collectionvla déclaration / construction (initialisation) de la collectionvles opérations usuelles sur les éléments•ajout•accès•suppressionvla complexité en temps de chacune de ces opérationscomplexité en temps = efficacité de l'algorithmevle parcours de la collection (visite de tous ses éléments)
ISIAutomne 2022 -L. NerimaCollections111. Les tableaux dynamiques: ArrayListvTableaux dynamiques (anciennement Vector, classe qui existe toujours)vDynamique = la taille (nombres d'éléments) du tableau n'est pas fixe et peut varier en cours d'exécutionvL'accès à ses éléments est direct, comme dans un tableau (complexité en temps O(1) ) vL'opération d'ajout et de suppression est en O(N), car nécessitant éventuellement un réarrangement des éléments pour qu'ils soient toujours contigus (comme dans un tableau)
ISIAutomne 2022 -L. NerimaCollections12ArrayList -construction et méthodes usuellesvDéclaration / constructionArrayList
ISIAutomne 2022 -L. NerimaCollections13ArrayList -parcoursvLe parcours de la liste se fait avec la boucle forfor (E e : v) vExemple: afficher tous les éléments d'une listepublic static void affiche (ArrayList
ISIAutomne 2022 -L. NerimaCollections142. Les listes: LinkedListvListes doublement chaînéesvLa liste peut être parcourue par un itérateur bidirectionnel ListIteratorvAjout et supression d'un élément à une position donnée:complexité O(1)vAccès d'un élément en fonction de sa valeur: complexité O(N) car nécessite le parcours de la listevUtilisationvla classe LinkedList se prête bien à l'implémentation des collections ordonnées, c'est-à-direvpilevqueue (file d'attente)vséquence
ISIAutomne 2022 -L. NerimaCollections15LinkedList -construction et méthodes usuellesvDéclaration / constructionLinkedList
ISIAutomne 2022 -L. NerimaCollections16LinkedList -parcoursvLe parcours d'une LinkedList se fait avec un itérateur ListIteratorvNotion de position courante dans la liste avec l'itérateur de liste ListIterator
ISIAutomne 2022 -L. NerimaCollections173. Les ensembles: HashSet (et TreeSet)vUn ensemble est une collection non ordonnée d'éléments de type E, aucun élément ne peut apparaître plus d'une fois dans un ensemblevProblème: comme deux objets distincts ont des références différentes, on ne pourra jamais avoir deux objets égaux même si toutes leurs valeurs sont identiques -> Il faudra définir un comparateur qui sera capable de tester l'égalité de deux objets (equals et compareTo)vMême s'il n'existe pas d'ordre dans un ensemble, l'implémentation informatique s'appuie sur une organisation des éléments afin de garantir un accès efficace. Au lieu de O(N)nous auronsvHashSet -> O(1) (implémentation avec une table hachage)vTreeSet -> O(log N) (implémentation avec un arbre de recherche binaire)vL'utilisateur devra définir, pour l'utilisation d'un vHashSet -> les méthodes hashCode et equalsdans la classe deséléments EvTreeSet -> la méthode compareTo dans la classe E
ISIAutomne 2022 -L. NerimaCollections18HashSet -construction et méthodes usuellesvDéclaration / constructionHashSet
ISIAutomne 2022 -L. NerimaCollections19HashSet -parcoursvParcoursà l'aide d'un itérateurHashSet
ISIAutomne 2022 -L. NerimaCollections204. Les fonctions (map): HashMapvFonction(Map ) = ensemble de paires (clé, valeur) vNotion proche de la fonctionau sens mathématiquevEn informatique, la fonctionest aussi appelée tableau associatif ou encoredictionnairevRappel: en Java, les collections de type fonction, sont définies à partir de la racine Interface Map
ISIAutomne 2022 -L. NerimaCollections21HashMap -construction et méthodes usuellesvDéclaration / constructionHashMap
ISIAutomne 2022 -L. NerimaCollections22HashMap -parcoursvEn théorie une mapne dispose pas d'itérateurvEn pratique, on utilise la méthode entrySet() défine dans la classe HashMap pour créer un ensemble à partir du map (l'ensemble des paires de la map); puis on crée un itérateur sur cet ensemblevHashMap
ISIAutomne 2022 -L. NerimaCollections23import java.util.*; // HashMap, Map, Iterator, Setpublic class HashMapDemo{public static void main(String args[]) {/* Déclaration du HashMap persAge */HashMap