Académique Documents
Professionnel Documents
Culture Documents
Collections
Module 7
Michelle Carrier
Chargé
Chargée d’
d’enseignement
et Rédactrice
Université virtuelle
Département d’informatique
africaine
et de génie logiciel
Plan
• Introduction
• Structures de données
• Collections
• List
• Set
• Map
• Itérateurs
• Algorithmes
Université virtuelle
Département d’informatique
africaine
et de génie logiciel
Introduction
• Définitions:
• Une structure de données est un moyen
efficace d’organiser un ensemble d’informations
similaires, sous la forme de tableaux, de listes,
de piles, d’arbres, etc. (ex: Classes Array,
Vector, Stack)
• Ces structures ont des caractéristiques qui les
rendent uniques et complémentaires (temps
d’accès, espace mémoire, algorithmes de
recherches spécifiques).
• Références:
• Volume, chapitre 21, pages 1201 à 1235
• http://java.sun.com/developer/onlineTraining/co
llections/Collection.html
• Définitions (suite) :
• Framework de collections (Java 2)
• Une collection est une structure de données
spécialisée.
• Il s’agit d’une abstraction de boîte
(contenant), pouvant contenir un groupe
d’éléments de même type ou un groupe
d’objets.
• Les éléments peuvent être uniques, c’est-à-
dire, qu’ils ne peuvent pas être dupliqués (Set,
SortedSet)
• Ou bien exister en plusieurs exemplaires
(Collection, List)
• Définitions (suite) :
• Les éléments peuvent être ordonnés (Sorted) ou non.
• Peuvent être accessibles par des clés (Map,
SortedMap) et comporter des données composées
(clé, valeur).
• Intérêt :
• Les collections constituent une évolution par
rapport aux structures de données pour plusieurs
raisons particulières :
• Utilisation de structures existantes (exemple de
réutilisation de code OO).
• Rapidité de développement.
• Excellente performance (amélioration de la vitesse
d’exécution et limitation de la consommation de la
mémoire.
Classes d'implémentations
Table Table de
Tableau Liste
de Hachage et Arbre
de taille chaîné
Hacha- Liste balancé
variable e
ge Chaînée
Hash- LinkedHash
Set TreeSet
Set -Set
Hash- LinkedHash
Map TreeMap
Map -Map
import java.util.*;
public class SetExample {
public static void main(String args[]) {
// Table de Hachage
Set<String> set = new HashSet<String>();
set.add("Bernadine");
set.add("Elizabeth");
set.add("Gene");
set.add("Elizabeth");
set.add("Clara");
System.out.println(set);
// Pour trié un Set
Set<String> setTrie = new TreeSet<String>(set);
System.out.println(setTrie);
}
}
Affichage: [Gene, Clara, Bernadine, Elizabeth]
[Bernadine, Clara, Elizabeth, Gene]
Département d’informatique et de génie logiciel 13
Collection List
• Caractéristiques :
• Collection ordonnée.
• Permet la duplication des éléments.
• Interface compléter par la possibilité d'ajouter ou
de retirer des éléments se trouvant à une position
donnée.
• Permet également de travailler sur des sous-listes.
import java.util.*;
queue.addFirst("Bernadine");
queue.addFirst("Elizabeth");
queue.addFirst("Gene");
queue.addFirst("Elizabeth");
queue.addFirst("Clara");
System.out.println(queue);
queue.removeLast();
queue.removeLast();
System.out.println(queue);
}
}
Affichage : [Bernadine, Elizabeth, Gene, Elizabeth, Clara]
2: Gene
0: Bernadine
[Clara, Elizabeth, Gene, Elizabeth, Bernadine]
[Clara, Elizabeth, Gene]
import java.util.*;
else {
int value = frequency.intValue();
frequency = new Integer(value + 1);
}
map.put(key, frequency);
}
System.out.println(map);
Map sortedMap = new TreeMap(map);
System.out.println(sortedMap);
}
}
• Interface Comparable :
• Algorithme très rapide et stable (les éléments
équivalents ne sont pas réordonnés)
• Utilisé pour trier la liste en utilisant l'ordre naturel
du type.
• Classes doivent implémenter la méthode
Comparable (contient une seule méthode
compareTo):