SlideShare une entreprise Scribd logo
1  sur  38
1
Programmation Orientée Objet Avancée
Année Universitaire 2022/2023
Niveau : License L2- DSI
Semestre2
Sana REFAI
sana.refai@gmail.com
1
Plan du cours
2
Chapitre 1: La généricité
Chapitre 2: Les collections
Chapitre 3: Les interfaces graphiques
javaFX
Chapitre 4: Gestions des évènements
Chapitre 5: Les entrées /Sorties en java
Chapitre 6: Les threads
Chapitre 5: L’accés aux BD via jdbc
2
Chapitre 1: Les collections
3
Introduction(3/4)
Java propose plusieurs moyens de manipuler des ensembles
d’objets :
on a vu les tableaux dont l’inconvenient est de ne pas être
dynamique vis à vis de leur taille. Java fournit des interfaces
qui permettent de gérer des ensembles d’objets dans des
structures qui peuvent être parcourues. Ce chapitre donne
un aperçu de ces collections. Elles sont toutes génériques.
4
Définition d’une collection (1/2)
Une collection de données est une structure de donnée
permettant de grouper un ensemble de données autrement
dit une collection représente un groupe d'objets, comme les
tableaux: Elle permet de gérer les données de manière
beaucoup plus souple et plus puissante que les tableaux.
Elles implémentent les méthodes de parcours ,de recherche,
d’ajout, de suppression, etc
Certaines collections acceptent les doublons, d'autres pas.
Certaines sont ordonnées, d'autres pas.
Certaines collections émettent quelques restrictions, comme
le type ou l'interdiction de la valeur null.
5
Définition d’une collection (2/2)
Toutes les collections d’objets sont dans le paquetage
java.util et implémentent l'interface Collection par le biais de
sous interfaces comme Set, Map ou List.
o Les listes (list) sont des structures capables de contenir
des objets de différents types accessibles séquentiellement.
o Les maps (Map) sont des tableaux associatifs qui
permettent de lier un objet clé à un autre objet valeur.
o Les ensembles (Set) sont des structures contenant des
éléments non dupliqués dont l'accès reste très performant.
6
la hiérarchie des interfaces
7
Interface collection (1/2)
Cette interface définit des méthodes pour des objets qui
gèrent des éléments d'une façon assez générale. Elle est la
super interface de cinq sous-interfaces List, Set, SortedSet,
NavigableSet et Queue..
Les implémentations de l'interface Collection sont
AbstractCollection, AbstractList, AbstractSet, ArrayList,
HashSet, LinkedHashSet, LinkedList, TreeSet et Vector.
8
Interface collection (2/2)
Cette interface définit plusieurs méthodes :
9
Interface Iterator (1/2)
Cette interface définit des méthodes pour des objets
capables de parcourir les données d'une collection.
10
For-each
En Java 5, le parcours d'un tableau ou d'une collection peut
être effectué en utilisant la boucle for-each, également
appelée boucle for-in. Cette boucle est conçue pour
parcourir chaque élément d'une collection de manière
séquentielle, sans avoir besoin de suivre un index ou une
position.
Important: la boucle for-each ne permet pas de modifier
directement les éléments de la collection, car la variable
temporaire ne référence qu'une copie de chaque élément. Si
vous avez besoin de modifier les éléments d'une collection,
vous devez utiliser une boucle for traditionnelle avec un
index ou une position.
11
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number); }
L’interface List(1/2)
- Une liste est un ensemble ordonné d’éléments, c'est-à-dire
qu'un élément peut être ajouté à n'importe quelle position,
et non seulement à la fin (comme dans un vecteur).
– L'utilisateur de cette interface a un contrôle précis sur la
position sur laquelle chaque élément sera inséré.
– L'interface List étend l'interface racine Collection. Elle est
implémentée par les classes ArrayList, LinkedList et Vector.
– A l'image des tableaux, il est possible d'accéder aux
éléments d'une liste par l'intermédiaire d'un index. La
recherche s'effectue de la même façon.
– Les listes peuvent contenir des éléments dupliqués, ainsi
que des valeurs null.
12
L’interface List(2/2)
Cette interface définit plusieurs méthodes :
Implémentation de l’interface List
13
ArrayList (1/3)
– Cette classe est implantée dans un tableau d'objets dont
la taille est dynamique.
 Accès immédiat à chaque élément
 Ajout et suppression lourdes
- Les constructeurs de ArrayList:
14
ArrayList (2/3)
Elle définit plusieurs méthodes dont les principales sont :
15
ArrayList (3/3)
16
Donner le résultat d’exécution de cet exemple :
LinkedList (1/2)
– Cette classe est implantée dans une liste doublement
chaînée.
 Ajout et suppression très efficaces
 Accès aux éléments lourd
- Les constructeurs de LinkList:
- Parmi les méthodes on peut citer :
17
LinkedList (2/2)
18
Donner le résultat d’exécution de cet exemple :
L’interface ListIterator(1/2)
L'interface ListIterator en Java est une sous-interface de
l'interface Iterator qui permet de parcourir une liste en avant
et en arrière (dans les deux sens). En plus des méthodes de
base de l'interface Iterator (hasNext(), next(), remove()),
l'interface ListIterator fournit des méthodes supplémentaires
pour accéder à des éléments spécifiques dans la liste.
19
L’interface ListIterator(2/2)
20
Donner le résultat d’exécution de cet exemple :
L’interface Set
L'interface Set est une interface qui n’accepte pas deux
objets identiques (au sens de equals). Par exemple, la
méthode add n’ajoute pas un élément si un élément égal est
déjà dans l’ensemble (la méthode renvoie alors false ) .
21
L’interface SortedSet(1/2)
Cette interface définit une collection de type ensemble triée.
Elle hérite de l'interface Set.
Le tri de l'ensemble peut être assuré par deux façons :
o les éléments contenus dans l'ensemble implémentent
l'interface Comparable pour définir leur ordre naturel
o il faut fournir au constructeur de l'ensemble un objet
Comparator qui définit l'ordre de tri à utiliser
– Elle définit plusieurs méthodes pour tirer parti de cet
ordre :
22
L’interface SortedSet(1/2)
Cette interface définit une collection de type ensemble triée.
Elle hérite de l'interface Set.
Le tri de l'ensemble peut être assuré par deux façons :
o les éléments contenus dans l'ensemble implémentent
l'interface Comparable pour définir leur ordre naturel
o il faut fournir au constructeur de l'ensemble un objet
Comparator qui définit l'ordre de tri à utiliser
23
L’interface SortedSet(2/2)
Elle définit plusieurs méthodes pour tirer parti de cet ordre :
24
Classe HashSet(1/2)
- Cette classe est un ensemble sans ordre de tri particulier.
– Les éléments sont stockés dans une table de hashage :
cette table possède une capacité.
– Une table de hashage est une structure de données qui
permet une association sous forme clé/valeur. Dans notre
cas, la clé est le code de hashage de l’objet et la valeur est
l’objet lui Même.
   L'ajout, la suppression et la recherche d'un élément
dans un HashSet se font en temps constant (en moyenne),
ce qui en fait une structure de données très performante
pour de nombreuses opérations.
25
Classe HashSet(2/2)
26
Donner le résultat d’exécution de cet exemple :
Classe TreeSet(1/2)
TreeSet est une classe de la bibliothèque standard de Java
qui implémente l'interface SortedSet.
Elle utilise une structure de données d'arbre rouge-noir pour
stocker ses éléments, ce qui garantit que les éléments sont
toujours triés selon leur ordre naturel
(ou selon un ordre spécifié par un Comparator fourni lors de
la création d'une instance de TreeSet).
Les éléments stockés dans un TreeSet doivent être
comparables, ce qui signifie qu'ils doivent implémenter
l'interface Comparable ou être utilisés avec un Comparator
externe. Les opérations de base d'un TreeSet (ajout,
suppression, recherche, etc.)
ont une complexité logarithmique,
ce qui en fait une structure de données efficace pour les
ensembles triés de données. 27
Classe treeSet(2/2)
28
Donner le résultat d’exécution de cet exemple :
L’interface Map(1/3)
Cette interface est une des deux racines de l'arborescence
des collections.
Les collections qui implémentent cette interface ne peuvent
contenir des doublons.
Les collections qui implémentent cette interface utilisent
une association entre une clé et une valeur.
– Les tables sont des structures dans lesquelles les objets, au
lieu d'être accessibles à l'aide d'un index correspondant à
leur position, le sont au moyen d'une clé.
– Une structure de type Map permet ainsi de stocker des
couples clé/valeur. La notion d'ordre n'y est pas pertinente.
– En Java, le type Map est une interface qui doit être
implémentée par des classes et n'offre donc qu'une
structure de méthodes sans définitions.
29
L’interface Map(2/3)
– Elle définit plusieurs méthodes pour agir sur la collection
30
L’interface Map(3/3)
Le J.D.K. 1.2 propose deux nouvelles classes qui
implémentent cette interface :
o HashMap: qui stocke les éléments dans une table de
hashage (Structure de données qui permet de retrouver très
rapidement un objet si on connaît sa clé),
o TreeMap: qui stocke les éléments dans un arbre ordonnée
suivant les valeurs des clés
– La classe HashTable a été mise à jour pour implémenter
aussi cette interface
31
La classe HashMap
32
Donner le résultat d’exécution de cet exemple :
La classe HashMap
33
Donner le résultat d’exécution de cet exemple :
Tri de Collections
- Les structures ordonnées classent leurs éléments de deux
façons :
o selon leur ordre naturel, c’est-à-dire en utilisant le résultat
de leur méthode compareTo() ( de l’interface comparable).
o ou à l'aide d'un comparateur, c'est-à-dire d'un objet
implémentant l'interface Comparator.
- L'utilité des comparateurs vient de ce que l'ordre naturel
ne convient pas toujours à certaines structures. Par
exemple, certains objets peuvent disposer d'une méthode
compareTo() donnant un ordre partiel alors qu'une
structure peut nécessiter un ordre total.
- L'ordre de tri est défini grâce à deux interfaces :
Comparable et Comparator
- Les tables ordonnées SortedMap et les ensembles
ordonnés (SortedSet) exploitent les comparateurs pour trier
leurs éléments.
34
L’interface Comparable (1/2)
- Tous les objets qui doivent définir un ordre naturel utilisé
par le tri d'une collection avec cet ordre doivent
implémenter cette interface.
- Cette interface ne définit qu'une seule méthode : int
compareTo(T o).
- Cette méthode renvoie un nombre entier qui représente le
résultat de la comparaison. La mise en œuvre de cette
méthode doit renvoyer les valeurs suivantes :
0 si cette instance et objectToCompareTo sont égales
> 0 si cette instance est supérieure à objectToCompareTo
< 0 si cette instance est inférieure à objectToCompareTo
35
L’interface Comparable (2/2)
Exercice: Ecrire une classe Etudiant contenant un cin, nom,
age et moyenne,
- Dans le main créer une liste des étudiants
- Trier par cin,
36
L’interface Comparator (1/2)
-Cette interface permet de spécifier un ordre de tri externe
qui peut être valable juste pour un moment donné.
-Elle est utile pour permettre le tri d'objet qui n'implémente
pas l'interface Comparable ou pour définir un ordre de tri
différent de celui défini avec Comparable (l'interface
Comparable représente un ordre naturel : il ne peut y en
avoir qu'un) - Cette interface ne définit qu'une seule
méthode : int compare(Object, Object). - Cette méthode
compare les deux objets fournis en paramètre et renvoie :
<0 si le premier objet est inférieur au second
>0 si le premier objet est supérieur au second
=0 si les deux objets sont égaux
37
L’interface Comparator (2/2)
Exercice: On souhaite maintenant trieer les etudiants selon
leurs moyenne et après selon leurs Age,
38

Contenu connexe

Tendances

Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockageLilia Sfaxi
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Symphorien Niyonzima
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQLLilia Sfaxi
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Hamza Ben Marzouk
 

Tendances (20)

Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Android-Tp4: stockage
Android-Tp4: stockageAndroid-Tp4: stockage
Android-Tp4: stockage
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Hadoop
HadoopHadoop
Hadoop
 
Les attaques
Les attaquesLes attaques
Les attaques
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
BigData_Chp4: NOSQL
BigData_Chp4: NOSQLBigData_Chp4: NOSQL
BigData_Chp4: NOSQL
 
5.5 Clustering
5.5 Clustering5.5 Clustering
5.5 Clustering
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
XML Xpath & XSLT
XML  Xpath & XSLTXML  Xpath & XSLT
XML Xpath & XSLT
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015Rapport atelier Web App Security 2015
Rapport atelier Web App Security 2015
 

Similaire à Chap2: lescollections

7_Chapitre6_Les collections.pdf
7_Chapitre6_Les collections.pdf7_Chapitre6_Les collections.pdf
7_Chapitre6_Les collections.pdffatimakhdidr
 
5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdfAliouDiallo24
 
Fmin103 0910 tpjdbc
Fmin103 0910 tpjdbcFmin103 0910 tpjdbc
Fmin103 0910 tpjdbcKarim Amane
 
Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en JavaOussama BEN KHIROUN
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et streamFranck SIMON
 
presentaiopn PFE.pptx
presentaiopn PFE.pptxpresentaiopn PFE.pptx
presentaiopn PFE.pptxallagahamza
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Laurent BUNIET
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinterRYMAA
 
Ado.net vs jpa
Ado.net vs jpaAdo.net vs jpa
Ado.net vs jpaNetways
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfLarbaSAWADOGO2
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zinebZineb ELGARRAI
 
Java 8 : Un ch'ti peu de lambda
Java 8 : Un ch'ti peu de lambdaJava 8 : Un ch'ti peu de lambda
Java 8 : Un ch'ti peu de lambdaCh'ti JUG
 

Similaire à Chap2: lescollections (20)

Java collection
Java collection Java collection
Java collection
 
7_Chapitre6_Les collections.pdf
7_Chapitre6_Les collections.pdf7_Chapitre6_Les collections.pdf
7_Chapitre6_Les collections.pdf
 
5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf
 
Fmin103 0910 tpjdbc
Fmin103 0910 tpjdbcFmin103 0910 tpjdbc
Fmin103 0910 tpjdbc
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en Java
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et stream
 
presentaiopn PFE.pptx
presentaiopn PFE.pptxpresentaiopn PFE.pptx
presentaiopn PFE.pptx
 
Marzouk collection-map
Marzouk collection-mapMarzouk collection-map
Marzouk collection-map
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinter
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Cours1 2 gdmm
Cours1 2 gdmmCours1 2 gdmm
Cours1 2 gdmm
 
Ado.net vs jpa
Ado.net vs jpaAdo.net vs jpa
Ado.net vs jpa
 
575
575575
575
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Cours partie1 elgarrai zineb
Cours partie1 elgarrai zinebCours partie1 elgarrai zineb
Cours partie1 elgarrai zineb
 
Java 8 : Un ch'ti peu de lambda
Java 8 : Un ch'ti peu de lambdaJava 8 : Un ch'ti peu de lambda
Java 8 : Un ch'ti peu de lambda
 

Plus de Sana REFAI

Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
Chapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CChapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CSana REFAI
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéSana REFAI
 
Chap1lla génèricité.pptx
Chap1lla génèricité.pptxChap1lla génèricité.pptx
Chap1lla génèricité.pptxSana REFAI
 
Cours algo: Les pointeurs
Cours algo: Les pointeursCours algo: Les pointeurs
Cours algo: Les pointeursSana REFAI
 
Gestion de projets
Gestion de projetsGestion de projets
Gestion de projetsSana REFAI
 

Plus de Sana REFAI (8)

Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
Chapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CChapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et C
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
Chap1lla génèricité.pptx
Chap1lla génèricité.pptxChap1lla génèricité.pptx
Chap1lla génèricité.pptx
 
Pfe
PfePfe
Pfe
 
Cours algo: Les pointeurs
Cours algo: Les pointeursCours algo: Les pointeurs
Cours algo: Les pointeurs
 
Kinect
Kinect Kinect
Kinect
 
Gestion de projets
Gestion de projetsGestion de projets
Gestion de projets
 

Dernier

SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 

Dernier (20)

SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 

Chap2: lescollections

  • 1. 1 Programmation Orientée Objet Avancée Année Universitaire 2022/2023 Niveau : License L2- DSI Semestre2 Sana REFAI sana.refai@gmail.com 1
  • 2. Plan du cours 2 Chapitre 1: La généricité Chapitre 2: Les collections Chapitre 3: Les interfaces graphiques javaFX Chapitre 4: Gestions des évènements Chapitre 5: Les entrées /Sorties en java Chapitre 6: Les threads Chapitre 5: L’accés aux BD via jdbc 2
  • 3. Chapitre 1: Les collections 3
  • 4. Introduction(3/4) Java propose plusieurs moyens de manipuler des ensembles d’objets : on a vu les tableaux dont l’inconvenient est de ne pas être dynamique vis à vis de leur taille. Java fournit des interfaces qui permettent de gérer des ensembles d’objets dans des structures qui peuvent être parcourues. Ce chapitre donne un aperçu de ces collections. Elles sont toutes génériques. 4
  • 5. Définition d’une collection (1/2) Une collection de données est une structure de donnée permettant de grouper un ensemble de données autrement dit une collection représente un groupe d'objets, comme les tableaux: Elle permet de gérer les données de manière beaucoup plus souple et plus puissante que les tableaux. Elles implémentent les méthodes de parcours ,de recherche, d’ajout, de suppression, etc Certaines collections acceptent les doublons, d'autres pas. Certaines sont ordonnées, d'autres pas. Certaines collections émettent quelques restrictions, comme le type ou l'interdiction de la valeur null. 5
  • 6. Définition d’une collection (2/2) Toutes les collections d’objets sont dans le paquetage java.util et implémentent l'interface Collection par le biais de sous interfaces comme Set, Map ou List. o Les listes (list) sont des structures capables de contenir des objets de différents types accessibles séquentiellement. o Les maps (Map) sont des tableaux associatifs qui permettent de lier un objet clé à un autre objet valeur. o Les ensembles (Set) sont des structures contenant des éléments non dupliqués dont l'accès reste très performant. 6
  • 7. la hiérarchie des interfaces 7
  • 8. Interface collection (1/2) Cette interface définit des méthodes pour des objets qui gèrent des éléments d'une façon assez générale. Elle est la super interface de cinq sous-interfaces List, Set, SortedSet, NavigableSet et Queue.. Les implémentations de l'interface Collection sont AbstractCollection, AbstractList, AbstractSet, ArrayList, HashSet, LinkedHashSet, LinkedList, TreeSet et Vector. 8
  • 9. Interface collection (2/2) Cette interface définit plusieurs méthodes : 9
  • 10. Interface Iterator (1/2) Cette interface définit des méthodes pour des objets capables de parcourir les données d'une collection. 10
  • 11. For-each En Java 5, le parcours d'un tableau ou d'une collection peut être effectué en utilisant la boucle for-each, également appelée boucle for-in. Cette boucle est conçue pour parcourir chaque élément d'une collection de manière séquentielle, sans avoir besoin de suivre un index ou une position. Important: la boucle for-each ne permet pas de modifier directement les éléments de la collection, car la variable temporaire ne référence qu'une copie de chaque élément. Si vous avez besoin de modifier les éléments d'une collection, vous devez utiliser une boucle for traditionnelle avec un index ou une position. 11 int[] numbers = {1, 2, 3, 4, 5}; for (int number : numbers) { System.out.println(number); }
  • 12. L’interface List(1/2) - Une liste est un ensemble ordonné d’éléments, c'est-à-dire qu'un élément peut être ajouté à n'importe quelle position, et non seulement à la fin (comme dans un vecteur). – L'utilisateur de cette interface a un contrôle précis sur la position sur laquelle chaque élément sera inséré. – L'interface List étend l'interface racine Collection. Elle est implémentée par les classes ArrayList, LinkedList et Vector. – A l'image des tableaux, il est possible d'accéder aux éléments d'une liste par l'intermédiaire d'un index. La recherche s'effectue de la même façon. – Les listes peuvent contenir des éléments dupliqués, ainsi que des valeurs null. 12
  • 13. L’interface List(2/2) Cette interface définit plusieurs méthodes : Implémentation de l’interface List 13
  • 14. ArrayList (1/3) – Cette classe est implantée dans un tableau d'objets dont la taille est dynamique.  Accès immédiat à chaque élément  Ajout et suppression lourdes - Les constructeurs de ArrayList: 14
  • 15. ArrayList (2/3) Elle définit plusieurs méthodes dont les principales sont : 15
  • 16. ArrayList (3/3) 16 Donner le résultat d’exécution de cet exemple :
  • 17. LinkedList (1/2) – Cette classe est implantée dans une liste doublement chaînée.  Ajout et suppression très efficaces  Accès aux éléments lourd - Les constructeurs de LinkList: - Parmi les méthodes on peut citer : 17
  • 18. LinkedList (2/2) 18 Donner le résultat d’exécution de cet exemple :
  • 19. L’interface ListIterator(1/2) L'interface ListIterator en Java est une sous-interface de l'interface Iterator qui permet de parcourir une liste en avant et en arrière (dans les deux sens). En plus des méthodes de base de l'interface Iterator (hasNext(), next(), remove()), l'interface ListIterator fournit des méthodes supplémentaires pour accéder à des éléments spécifiques dans la liste. 19
  • 20. L’interface ListIterator(2/2) 20 Donner le résultat d’exécution de cet exemple :
  • 21. L’interface Set L'interface Set est une interface qui n’accepte pas deux objets identiques (au sens de equals). Par exemple, la méthode add n’ajoute pas un élément si un élément égal est déjà dans l’ensemble (la méthode renvoie alors false ) . 21
  • 22. L’interface SortedSet(1/2) Cette interface définit une collection de type ensemble triée. Elle hérite de l'interface Set. Le tri de l'ensemble peut être assuré par deux façons : o les éléments contenus dans l'ensemble implémentent l'interface Comparable pour définir leur ordre naturel o il faut fournir au constructeur de l'ensemble un objet Comparator qui définit l'ordre de tri à utiliser – Elle définit plusieurs méthodes pour tirer parti de cet ordre : 22
  • 23. L’interface SortedSet(1/2) Cette interface définit une collection de type ensemble triée. Elle hérite de l'interface Set. Le tri de l'ensemble peut être assuré par deux façons : o les éléments contenus dans l'ensemble implémentent l'interface Comparable pour définir leur ordre naturel o il faut fournir au constructeur de l'ensemble un objet Comparator qui définit l'ordre de tri à utiliser 23
  • 24. L’interface SortedSet(2/2) Elle définit plusieurs méthodes pour tirer parti de cet ordre : 24
  • 25. Classe HashSet(1/2) - Cette classe est un ensemble sans ordre de tri particulier. – Les éléments sont stockés dans une table de hashage : cette table possède une capacité. – Une table de hashage est une structure de données qui permet une association sous forme clé/valeur. Dans notre cas, la clé est le code de hashage de l’objet et la valeur est l’objet lui Même.    L'ajout, la suppression et la recherche d'un élément dans un HashSet se font en temps constant (en moyenne), ce qui en fait une structure de données très performante pour de nombreuses opérations. 25
  • 26. Classe HashSet(2/2) 26 Donner le résultat d’exécution de cet exemple :
  • 27. Classe TreeSet(1/2) TreeSet est une classe de la bibliothèque standard de Java qui implémente l'interface SortedSet. Elle utilise une structure de données d'arbre rouge-noir pour stocker ses éléments, ce qui garantit que les éléments sont toujours triés selon leur ordre naturel (ou selon un ordre spécifié par un Comparator fourni lors de la création d'une instance de TreeSet). Les éléments stockés dans un TreeSet doivent être comparables, ce qui signifie qu'ils doivent implémenter l'interface Comparable ou être utilisés avec un Comparator externe. Les opérations de base d'un TreeSet (ajout, suppression, recherche, etc.) ont une complexité logarithmique, ce qui en fait une structure de données efficace pour les ensembles triés de données. 27
  • 28. Classe treeSet(2/2) 28 Donner le résultat d’exécution de cet exemple :
  • 29. L’interface Map(1/3) Cette interface est une des deux racines de l'arborescence des collections. Les collections qui implémentent cette interface ne peuvent contenir des doublons. Les collections qui implémentent cette interface utilisent une association entre une clé et une valeur. – Les tables sont des structures dans lesquelles les objets, au lieu d'être accessibles à l'aide d'un index correspondant à leur position, le sont au moyen d'une clé. – Une structure de type Map permet ainsi de stocker des couples clé/valeur. La notion d'ordre n'y est pas pertinente. – En Java, le type Map est une interface qui doit être implémentée par des classes et n'offre donc qu'une structure de méthodes sans définitions. 29
  • 30. L’interface Map(2/3) – Elle définit plusieurs méthodes pour agir sur la collection 30
  • 31. L’interface Map(3/3) Le J.D.K. 1.2 propose deux nouvelles classes qui implémentent cette interface : o HashMap: qui stocke les éléments dans une table de hashage (Structure de données qui permet de retrouver très rapidement un objet si on connaît sa clé), o TreeMap: qui stocke les éléments dans un arbre ordonnée suivant les valeurs des clés – La classe HashTable a été mise à jour pour implémenter aussi cette interface 31
  • 32. La classe HashMap 32 Donner le résultat d’exécution de cet exemple :
  • 33. La classe HashMap 33 Donner le résultat d’exécution de cet exemple :
  • 34. Tri de Collections - Les structures ordonnées classent leurs éléments de deux façons : o selon leur ordre naturel, c’est-à-dire en utilisant le résultat de leur méthode compareTo() ( de l’interface comparable). o ou à l'aide d'un comparateur, c'est-à-dire d'un objet implémentant l'interface Comparator. - L'utilité des comparateurs vient de ce que l'ordre naturel ne convient pas toujours à certaines structures. Par exemple, certains objets peuvent disposer d'une méthode compareTo() donnant un ordre partiel alors qu'une structure peut nécessiter un ordre total. - L'ordre de tri est défini grâce à deux interfaces : Comparable et Comparator - Les tables ordonnées SortedMap et les ensembles ordonnés (SortedSet) exploitent les comparateurs pour trier leurs éléments. 34
  • 35. L’interface Comparable (1/2) - Tous les objets qui doivent définir un ordre naturel utilisé par le tri d'une collection avec cet ordre doivent implémenter cette interface. - Cette interface ne définit qu'une seule méthode : int compareTo(T o). - Cette méthode renvoie un nombre entier qui représente le résultat de la comparaison. La mise en œuvre de cette méthode doit renvoyer les valeurs suivantes : 0 si cette instance et objectToCompareTo sont égales > 0 si cette instance est supérieure à objectToCompareTo < 0 si cette instance est inférieure à objectToCompareTo 35
  • 36. L’interface Comparable (2/2) Exercice: Ecrire une classe Etudiant contenant un cin, nom, age et moyenne, - Dans le main créer une liste des étudiants - Trier par cin, 36
  • 37. L’interface Comparator (1/2) -Cette interface permet de spécifier un ordre de tri externe qui peut être valable juste pour un moment donné. -Elle est utile pour permettre le tri d'objet qui n'implémente pas l'interface Comparable ou pour définir un ordre de tri différent de celui défini avec Comparable (l'interface Comparable représente un ordre naturel : il ne peut y en avoir qu'un) - Cette interface ne définit qu'une seule méthode : int compare(Object, Object). - Cette méthode compare les deux objets fournis en paramètre et renvoie : <0 si le premier objet est inférieur au second >0 si le premier objet est supérieur au second =0 si les deux objets sont égaux 37
  • 38. L’interface Comparator (2/2) Exercice: On souhaite maintenant trieer les etudiants selon leurs moyenne et après selon leurs Age, 38

Notes de l'éditeur

  1. Rechercher un element ds un tableau
  2. Rechercher un element ds un tableau
  3. Rechercher un element ds un tableau
  4. Rechercher un element ds un tableau
  5. Rechercher un element ds un tableau
  6. Rechercher un element ds un tableau
  7. Rechercher un element ds un tableau
  8. Rechercher un element ds un tableau
  9. Rechercher un element ds un tableau
  10. Rechercher un element ds un tableau
  11. Rechercher un element ds un tableau
  12. Rechercher un element ds un tableau
  13. Rechercher un element ds un tableau
  14. Rechercher un element ds un tableau
  15. Rechercher un element ds un tableau
  16. Rechercher un element ds un tableau
  17. Rechercher un element ds un tableau
  18. Rechercher un element ds un tableau
  19. Rechercher un element ds un tableau
  20. Rechercher un element ds un tableau
  21. Rechercher un element ds un tableau
  22. Rechercher un element ds un tableau
  23. Rechercher un element ds un tableau
  24. Rechercher un element ds un tableau
  25. Rechercher un element ds un tableau
  26. Rechercher un element ds un tableau
  27. Rechercher un element ds un tableau
  28. Rechercher un element ds un tableau
  29. Rechercher un element ds un tableau
  30. Rechercher un element ds un tableau
  31. Rechercher un element ds un tableau
  32. Rechercher un element ds un tableau
  33. Rechercher un element ds un tableau
  34. Rechercher un element ds un tableau
  35. Rechercher un element ds un tableau
  36. Rechercher un element ds un tableau
  37. Rechercher un element ds un tableau