SlideShare uma empresa Scribd logo
1 de 14
Présenté par :
godhanii@hotmail.fr
2013/2014

1
Structures de données
 C'est l'organisation efficace d'un ensemble de données,

sous la forme :
 Tableaux
 Listes
 Piles
…
=> Cette efficacité réside dans la quantité mémoire
utilisée pour stocker les données,
le temps nécessaire pour réaliser des opérations sur ces
données.
2
Collections & Java
 Une collection gère un groupe d'un ensemble d'objets d'un

type donné ; d’autre façon, c'est un objet qui sert à stocker
d'autres objets.

 Les 1er versions de Java, les collections étaient représentées

par les "Array","Vector","Stack" etc.

 Puis avec Java 1.2 est apparu le FramWork de collections

qui tout en gardant les principes de bases,

 Il a apporté des modifications dans la manière avec laquelle

ces collections ont été réalisées et hiérarchisées.

 Ces collections permettent de réaliser dans des catégories

de logiciels des conceptions réutilisables.

3
Structures collectives classiques
type[] et Array
 Tableau
 accès par index
 recherche efficace si le tableau est trié (dichotomie)
 insertions et suppressions peu efficaces
 défaut majeur : nombre d’éléments borné
interface List
 Liste
 accès séquentiel : premier, suivant
 insertions et suppressions efficaces
 recherche lente, non efficace
class ArrayList

 Tableau dynamique = tableau + liste
4
Collections Framwork de Java
1.
Interfaces
=> Organisées en deux catégories: Collection & Map.
 Collection:

Groupe d'objets où la duplication peut-être autorisée.
 Set:

est ensemble ne contenant que des valeurs
et ces valeurs ne sont pas dupliquées.
Par exemple l'ensemble A = {1,2,4,8}.
Set hérite donc de Collection, mais n'autorise pas
la duplication. SortedSet est un Set trié.

 List:

hérite aussi de collection, mais autorise la duplication.
Dans cette interface, un système d'indexation a été introduit pour permettre l'accès (rapide)
aux éléments de la liste.

 Map:

est un groupe de paires contenant une clé et une valeur associée à cette clé. Cette interface
n'hérite ni de Set ni de Collection.
La raison est que Collection traite des données simples alors que Map des données
composées (clé,valeur). SortedMap est un Map trié.
5
2. Implémentations
Le framework fournit les implémentations suivantes des différentes interfaces:

il n'y a pas d'implémentation de l'interface Collection.
 Pour Set et Map l'implémentation est soit sous la forme :

+ Table de hachage (HashSet/HashMap)
+ Arbre (TreeSet/TreeMap).
 Pour la liste: soit sous la forme :

+ Tableau (ArrayList)
+ Liste chaînée (LinkedList).
6
 Algorithmes :
sont utilisés pour traiter les éléments d'un ensemble de données. Ils
définissent une procédure informatique, par exemple: tris, recherche
etc.

 Itérateurs :
fournissent aux algorithmes un moyen pour parcourir
une collection du début à la fin. Ce moyen permet de
retirer donc à la demande des éléments donnés de la
collection.

7
Description des interfaces
1.

Collection

Il y a des opérations réalisées sur un seul
objet ou bien sur une collection
(un ensemble d'objets).
 add (remove) permet d'ajouter un élément.
quand à addAll (removeAll) permet
d'ajouter (resp. de retirer même si les
éléments sont dupliqués dans la collection originale)
une collection.
 contains (containsAll) permet de vérifier si
un objet (resp. les éléments d'une collection)
est présent dans la collection.
 size, isEmpty et clear, permettent
respectivement de donner la taille de la
collection, de vérifier si la collection
est vide et finalement d'effacer le contenu
de la collection.
8
 retainsAll se comporte comme le résultat de l'intersection de deux ensembles. Si
A={1,2,5,8} et B={3,8} alors A = {8}.
 equals permet de tester si deux objets sont égaux.

 hashCode retourne le code de hachage calculé pour la collection.
 toArray retourne les éléments de la collection sous le format d'un tableau.
 toArray(Object a[]) permet de préciser le type du tableau à retourner. Si le tableau est
grand les éléments sont rangés dans ce tableau, sinon un nouveau tableau est crée pour
recevoir les éléments de la collection.
 L'interface collection est dotée d'une instance d'une classe qui implante l'interface
Iterator. C'est l'outil utilisé pour parcourir une collection. L'interface Iterator contient ce
qui suit:

+ hasNext : permet de vérifier s'il y a un élément qui suit.
+ next : permet de pointer l'élément suivant.
+ remove :permet de retirer l'élément courant.

9
 Les collections vues comme des ensembles réalisent les 3 opérations mathématiques sur
des ensembles:

+ union: add et addAll
+ intersection: retainAll
+ différence: remove et removeAll
2.Map

 C'est un ensemble de paires, contenant une clé et une valeur (en réalité, nous pouvons

associer plusieurs valeurs. Dans ce cas la, nous sommes en présence d'une multimap …).
 Deux clés ne peuvent être égales au sens de equals.
 L'interface interne Entry permet de manipuler les éléments d'une paire comme suit:

 getKey & getValue retournent respectivement la clé et la valeur associée à cette clé.

setValue permet de modifier une valeur d'une paire.
10
3. Set

 C'est une interface identique à celle de Collection. Deux implémentations possibles:

+TreeSet: les éléments sont rangés de manière ascendante.
+HashSet: les éléments sont rangés suivant une méthode de hachage.

11
=>Ils y’a d’autre exemple dans le cous ;)
L'ensemble des algorithmes manipulant les collections se trouve dans la classe
Collections (à ne pas confondre avec l'interface Collection). Ces méthodes ont été
définies statiques.

Des algorithmes qui ne s'appliquent que sur des listes:
Trier:
sort(List list) ; trie une liste.
sort(List list,Comparator comp) ; trie une liste en utilisant un comparateur.
Mélanger:
shuffle(List liste) ; mélange les éléments de manière aléatoire.
Manipuler:
reverse(List liste) ; inverse les éléments de la liste.
fill (List liste, Object element) ; initialise les éléments de la liste avec element.
copy(List dest, List src) ; copy une liste src dans une liste dest.

Rechercher:
binarySearch(List list, Object element) ; une recherche binaire d'un élément.
binarySearch(List list, Object element, Comparator comp) ; une recherche binaire
d'un élément en utilisant un comparateur.
12
 Des algorithmes qui s'appliquent sur toutes les collections: effectuer des recherches extrêmes:

min, max etc.
min (Collection)
max (Collection)

Interface Comparable :
 Un algorithme extrêmement rapide et stable (les éléments équivalents ne sont pas

réordonnés) est utilisé pour trier la liste en utilisant l'ordre naturel du type.
Le tri ne peut avoir lieu que si les classes implantent la méthode Comparable, ce qui n'est
toujours pas le cas2.
Cette classe contient une seule méthode compareTo:
interface Comparable {
int compareTo(Object obj);
}
Cette méthode retourne:
- entier positif si l'objet qui fait l'appel est plus grand que obj,
- zéro s'ils sont identiques,
- négatif si l'objet qui fait l'appel est plus petit que obj.
13
14

Mais conteúdo relacionado

Mais procurados

Corrigé ccna1 chap10 couche application ccna cisco 5
Corrigé ccna1 chap10  couche application   ccna cisco 5Corrigé ccna1 chap10  couche application   ccna cisco 5
Corrigé ccna1 chap10 couche application ccna cisco 5
abdoulaye camara
 

Mais procurados (20)

POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
La gestion des exceptions avec Java
La gestion des exceptions avec JavaLa gestion des exceptions avec Java
La gestion des exceptions avec Java
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 Collections
 
Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)Polymorphisme (cours, résumé)
Polymorphisme (cours, résumé)
 
Algorithmique et Structures de Données II
Algorithmique et Structures de Données IIAlgorithmique et Structures de Données II
Algorithmique et Structures de Données II
 
Tp n 6 linux
Tp n 6 linuxTp n 6 linux
Tp n 6 linux
 
Java 8 - collections et stream
Java 8 - collections et streamJava 8 - collections et stream
Java 8 - collections et stream
 
Exercice 2 java Héritage
Exercice 2  java HéritageExercice 2  java Héritage
Exercice 2 java Héritage
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Corrige tp java
Corrige tp javaCorrige tp java
Corrige tp java
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java
 
Java IO
Java IOJava IO
Java IO
 
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMI
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Corrigé ccna1 chap10 couche application ccna cisco 5
Corrigé ccna1 chap10  couche application   ccna cisco 5Corrigé ccna1 chap10  couche application   ccna cisco 5
Corrigé ccna1 chap10 couche application ccna cisco 5
 
Remote method invocation
Remote method invocationRemote method invocation
Remote method invocation
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 

Destaque

Passive reporting 2
Passive reporting 2Passive reporting 2
Passive reporting 2
englishbites
 
Debutermatlab
DebutermatlabDebutermatlab
Debutermatlab
nejmzad
 
Traitement d'image
Traitement d'imageTraitement d'image
Traitement d'image
Anissa Teyeb
 
Guide pratique optimisation des stocks v1 0
Guide pratique optimisation des stocks v1 0Guide pratique optimisation des stocks v1 0
Guide pratique optimisation des stocks v1 0
mariatayssf
 
Proyecto educativoo....
Proyecto educativoo....Proyecto educativoo....
Proyecto educativoo....
jacknefta
 

Destaque (20)

Les nouveautés de asp.net mvc 3
Les nouveautés de asp.net mvc 3Les nouveautés de asp.net mvc 3
Les nouveautés de asp.net mvc 3
 
Passive reporting 2
Passive reporting 2Passive reporting 2
Passive reporting 2
 
Les collections en JAVA
Les collections en JAVALes collections en JAVA
Les collections en JAVA
 
Practice lesson 2
Practice lesson 2Practice lesson 2
Practice lesson 2
 
Debutermatlab
DebutermatlabDebutermatlab
Debutermatlab
 
Le Réseau et Java
Le Réseau et JavaLe Réseau et Java
Le Réseau et Java
 
Grammar rules
Grammar rulesGrammar rules
Grammar rules
 
Traitement d'image sous Matlab
Traitement d'image sous Matlab  Traitement d'image sous Matlab
Traitement d'image sous Matlab
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec Matlab
 
Introduction au traitement d'images
Introduction au traitement d'imagesIntroduction au traitement d'images
Introduction au traitement d'images
 
Traitement d'image
Traitement d'imageTraitement d'image
Traitement d'image
 
Alphorm.com Formation Excel 2016 Expert I - partie 1
Alphorm.com Formation Excel 2016 Expert I - partie 1Alphorm.com Formation Excel 2016 Expert I - partie 1
Alphorm.com Formation Excel 2016 Expert I - partie 1
 
Guide pratique optimisation des stocks v1 0
Guide pratique optimisation des stocks v1 0Guide pratique optimisation des stocks v1 0
Guide pratique optimisation des stocks v1 0
 
Formation traitement d_images
Formation traitement d_imagesFormation traitement d_images
Formation traitement d_images
 
Matlab
MatlabMatlab
Matlab
 
Proyecto educativoo....
Proyecto educativoo....Proyecto educativoo....
Proyecto educativoo....
 
Présentation de Jacques Tierny du 7 juillet 2015
Présentation de Jacques Tierny du 7 juillet 2015Présentation de Jacques Tierny du 7 juillet 2015
Présentation de Jacques Tierny du 7 juillet 2015
 
POP Samples
POP SamplesPOP Samples
POP Samples
 
Social & digital : trouvez la bonne gouvernance !
Social & digital : trouvez la bonne gouvernance !Social & digital : trouvez la bonne gouvernance !
Social & digital : trouvez la bonne gouvernance !
 
Management
ManagementManagement
Management
 

Semelhante a Java collection

Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Shellmates
 

Semelhante a Java collection (20)

5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf5- understandinggJava_Collections_v4.pdf
5- understandinggJava_Collections_v4.pdf
 
7_Chapitre6_Les collections.pdf
7_Chapitre6_Les collections.pdf7_Chapitre6_Les collections.pdf
7_Chapitre6_Les collections.pdf
 
Marzouk collection-map
Marzouk collection-mapMarzouk collection-map
Marzouk collection-map
 
Stockage des objets
Stockage des objetsStockage des objets
Stockage des objets
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
POO-JAVA-partie-2.pdf
POO-JAVA-partie-2.pdfPOO-JAVA-partie-2.pdf
POO-JAVA-partie-2.pdf
 
Atelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El HassaniAtelier Python 2eme partie par Achraf Kacimi El Hassani
Atelier Python 2eme partie par Achraf Kacimi El Hassani
 
Chapitre 3 et 4
Chapitre 3 et 4Chapitre 3 et 4
Chapitre 3 et 4
 
Classes et Objets.pdf
Classes et Objets.pdfClasses et Objets.pdf
Classes et Objets.pdf
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...
 
Héritage et Polymorphisme .pdf
Héritage et Polymorphisme .pdfHéritage et Polymorphisme .pdf
Héritage et Polymorphisme .pdf
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2
 
presentaiopn PFE.pptx
presentaiopn PFE.pptxpresentaiopn PFE.pptx
presentaiopn PFE.pptx
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
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
 
RCarte_Commandes-R.pdf
RCarte_Commandes-R.pdfRCarte_Commandes-R.pdf
RCarte_Commandes-R.pdf
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
Structures donneenew
Structures donneenewStructures donneenew
Structures donneenew
 
Structures donnee
Structures donneeStructures donnee
Structures donnee
 
Theme 9
Theme 9Theme 9
Theme 9
 

Último

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Último (20)

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 

Java collection

  • 2. Structures de données  C'est l'organisation efficace d'un ensemble de données, sous la forme :  Tableaux  Listes  Piles … => Cette efficacité réside dans la quantité mémoire utilisée pour stocker les données, le temps nécessaire pour réaliser des opérations sur ces données. 2
  • 3. Collections & Java  Une collection gère un groupe d'un ensemble d'objets d'un type donné ; d’autre façon, c'est un objet qui sert à stocker d'autres objets.  Les 1er versions de Java, les collections étaient représentées par les "Array","Vector","Stack" etc.  Puis avec Java 1.2 est apparu le FramWork de collections qui tout en gardant les principes de bases,  Il a apporté des modifications dans la manière avec laquelle ces collections ont été réalisées et hiérarchisées.  Ces collections permettent de réaliser dans des catégories de logiciels des conceptions réutilisables. 3
  • 4. Structures collectives classiques type[] et Array  Tableau  accès par index  recherche efficace si le tableau est trié (dichotomie)  insertions et suppressions peu efficaces  défaut majeur : nombre d’éléments borné interface List  Liste  accès séquentiel : premier, suivant  insertions et suppressions efficaces  recherche lente, non efficace class ArrayList  Tableau dynamique = tableau + liste 4
  • 5. Collections Framwork de Java 1. Interfaces => Organisées en deux catégories: Collection & Map.  Collection: Groupe d'objets où la duplication peut-être autorisée.  Set: est ensemble ne contenant que des valeurs et ces valeurs ne sont pas dupliquées. Par exemple l'ensemble A = {1,2,4,8}. Set hérite donc de Collection, mais n'autorise pas la duplication. SortedSet est un Set trié.  List: hérite aussi de collection, mais autorise la duplication. Dans cette interface, un système d'indexation a été introduit pour permettre l'accès (rapide) aux éléments de la liste.  Map: est un groupe de paires contenant une clé et une valeur associée à cette clé. Cette interface n'hérite ni de Set ni de Collection. La raison est que Collection traite des données simples alors que Map des données composées (clé,valeur). SortedMap est un Map trié. 5
  • 6. 2. Implémentations Le framework fournit les implémentations suivantes des différentes interfaces: il n'y a pas d'implémentation de l'interface Collection.  Pour Set et Map l'implémentation est soit sous la forme : + Table de hachage (HashSet/HashMap) + Arbre (TreeSet/TreeMap).  Pour la liste: soit sous la forme : + Tableau (ArrayList) + Liste chaînée (LinkedList). 6
  • 7.  Algorithmes : sont utilisés pour traiter les éléments d'un ensemble de données. Ils définissent une procédure informatique, par exemple: tris, recherche etc.  Itérateurs : fournissent aux algorithmes un moyen pour parcourir une collection du début à la fin. Ce moyen permet de retirer donc à la demande des éléments donnés de la collection. 7
  • 8. Description des interfaces 1. Collection Il y a des opérations réalisées sur un seul objet ou bien sur une collection (un ensemble d'objets).  add (remove) permet d'ajouter un élément. quand à addAll (removeAll) permet d'ajouter (resp. de retirer même si les éléments sont dupliqués dans la collection originale) une collection.  contains (containsAll) permet de vérifier si un objet (resp. les éléments d'une collection) est présent dans la collection.  size, isEmpty et clear, permettent respectivement de donner la taille de la collection, de vérifier si la collection est vide et finalement d'effacer le contenu de la collection. 8
  • 9.  retainsAll se comporte comme le résultat de l'intersection de deux ensembles. Si A={1,2,5,8} et B={3,8} alors A = {8}.  equals permet de tester si deux objets sont égaux.  hashCode retourne le code de hachage calculé pour la collection.  toArray retourne les éléments de la collection sous le format d'un tableau.  toArray(Object a[]) permet de préciser le type du tableau à retourner. Si le tableau est grand les éléments sont rangés dans ce tableau, sinon un nouveau tableau est crée pour recevoir les éléments de la collection.  L'interface collection est dotée d'une instance d'une classe qui implante l'interface Iterator. C'est l'outil utilisé pour parcourir une collection. L'interface Iterator contient ce qui suit: + hasNext : permet de vérifier s'il y a un élément qui suit. + next : permet de pointer l'élément suivant. + remove :permet de retirer l'élément courant. 9
  • 10.  Les collections vues comme des ensembles réalisent les 3 opérations mathématiques sur des ensembles: + union: add et addAll + intersection: retainAll + différence: remove et removeAll 2.Map  C'est un ensemble de paires, contenant une clé et une valeur (en réalité, nous pouvons associer plusieurs valeurs. Dans ce cas la, nous sommes en présence d'une multimap …).  Deux clés ne peuvent être égales au sens de equals.  L'interface interne Entry permet de manipuler les éléments d'une paire comme suit:  getKey & getValue retournent respectivement la clé et la valeur associée à cette clé. setValue permet de modifier une valeur d'une paire. 10
  • 11. 3. Set  C'est une interface identique à celle de Collection. Deux implémentations possibles: +TreeSet: les éléments sont rangés de manière ascendante. +HashSet: les éléments sont rangés suivant une méthode de hachage. 11
  • 12. =>Ils y’a d’autre exemple dans le cous ;) L'ensemble des algorithmes manipulant les collections se trouve dans la classe Collections (à ne pas confondre avec l'interface Collection). Ces méthodes ont été définies statiques. Des algorithmes qui ne s'appliquent que sur des listes: Trier: sort(List list) ; trie une liste. sort(List list,Comparator comp) ; trie une liste en utilisant un comparateur. Mélanger: shuffle(List liste) ; mélange les éléments de manière aléatoire. Manipuler: reverse(List liste) ; inverse les éléments de la liste. fill (List liste, Object element) ; initialise les éléments de la liste avec element. copy(List dest, List src) ; copy une liste src dans une liste dest. Rechercher: binarySearch(List list, Object element) ; une recherche binaire d'un élément. binarySearch(List list, Object element, Comparator comp) ; une recherche binaire d'un élément en utilisant un comparateur. 12
  • 13.  Des algorithmes qui s'appliquent sur toutes les collections: effectuer des recherches extrêmes: min, max etc. min (Collection) max (Collection) Interface Comparable :  Un algorithme extrêmement rapide et stable (les éléments équivalents ne sont pas réordonnés) est utilisé pour trier la liste en utilisant l'ordre naturel du type. Le tri ne peut avoir lieu que si les classes implantent la méthode Comparable, ce qui n'est toujours pas le cas2. Cette classe contient une seule méthode compareTo: interface Comparable { int compareTo(Object obj); } Cette méthode retourne: - entier positif si l'objet qui fait l'appel est plus grand que obj, - zéro s'ils sont identiques, - négatif si l'objet qui fait l'appel est plus petit que obj. 13
  • 14. 14