Académique Documents
Professionnel Documents
Culture Documents
Les collections
Programmation Orientée Objets avec JAVA
Les Collections
Plan du cours
1. Définition d’une collection
2. Les interfaces de collection
3. Les classes abstraites de collection
4. Les classes concrètes de collection
5. Les classes utilitaires
6. Exemple et exercices de mise en œuvre
7. Exemple de collections composées
3
Tableau
1 13 -1 . . . . 1 Tableau d’entiers
. . . . Collection
5
Qu’est ce qu’une Collection
6
Qu’est ce qu’une Collection
7
Les Interfaces
<<interface>>
Collection<E> . . .
. . .
8
Les Interfaces
• Les Collections
(1)
9
Les Interfaces
• Les Collections
1
Les Interfaces
• Les Maps
(2)
1
Les Classes abstraites
Set<E>
List<E> ArrayList<E>
Map<K,V>
Queue<E> ArrayDeQueue<E>
14
Les Classes concrètes
Set<E> HashSet<E>
List<E>
Map<K,V> HashMap<K,V>
Queue<E>
15
Les Classes concrètes
Set<E> TreeSet<E>
List<E>
Map<K,V> TreeMap<K,V>
Queue<E>
16
Les Classes concrètes
Set<E>
List<E> LinkedList<E>
Map<K,V>
Queue<E> LinkedList<E>
17
Les Classes concrètes
18
Les Classes concrètes
1
Les Classes concrètes
2
Les Classes utilitaires
2
Les Collections du JDK1.1
2
Les Collections
Exemples et exercices de
mise en œuvre des
Collections et maps
2
Les Collections
Code java de List
public interface List extends Collection {
// Positional Access
Object get(int index);
Object set(int index, Object element); // Optional
void add(int index, Object element); // Optional
Object remove(int index); // Optional
boolean addAll(int index, Collection c); // Optional
// Search
int indexOf(Object o);
int lastIndexOf(Object o);
// Iteration
ListIterator listIterator();
ListIterator listIterator(int index);
// Range-view
List subList(int fromIndex, int toIndex);
2 }
L’interface List et la classe ArrayList
Questions:
1) Quelle est la valeur de XX dans la ligne 7
2) Quel est le résultat affiché par: System.out.println(list2); de la ligne 15
3) Quelles sont les modifications à apporter au programme pour obtenir le
résultat suivant: [{A A 1}, {Y Z 2}, {D E 3}, {M N 4}, {E F 5}]
3) Trier les étudiants par nom
2 4) Quelles sont les conclusions que vous pouvez faire ?
Comparator et Comparable
de la classe utilitaire Collections
Pour trier les étudiants selon un critère
import java.util.Comparator;
public class Etudiant implements Comparable<Etudiant>,
Comparator<Etudiant>{ public class ListeEtudiant {
public static void main(String arg[]){
[….] [….]
Tri par nom
public int compareTo(Etudiant et) {
//méthode de l'interface Comparable<Etudiant> Collections.sort(list2);
return (this.nom).compareTo(et.nom); System.out.println(list2);
}
2
Parcours de ArrayList
2
Parcours de ArrayList
2
List et Arrays
strs[0] += "88";
lst.set(2, lst.get(2) + "99");
System.out.println(Arrays.toString(strs));
System.out.println(lst);
3
L’interface List et la classe LinkedList
Image de openClassRoom
Exemples et exercices de
mise en œuvre des
Collections et maps
3
L’interface Set
et les classes HashSet et LinkedHashSet
Set
• Elle permet de modéliser un ensemble d’objets sans doublons.
• Ceci est garanti vu que tous les objets ont la méthode equals
• La méthode add(T e) échoue si e existe déjà dans l’ensemble
3
L’interface Set
et les classes HashSet et LinkedHashSet
Exercice 1 public class ListeEtudiant {
Soit la classe Etudiant suivante: public static void main(String arg[]){
public class Etudiant { Set<Etudiant> set1 = new
HashSet<Etudiant>();
private String nom; Etudiant e1=new Etudiant("A","A",1);
private String prenom; Etudiant e2=new Etudiant("B","Z",2);
private int age; Etudiant e3=new Etudiant("C","E",3);
public Etudiant(String n,String p, int a){ Etudiant e4=new Etudiant("A","N",4);
nom=n; Etudiant e5=new Etudiant("X","F",5);
prenom=p; set1.add(null);
age=a; set1.add(e1); set1.add(e2); set1.add(e3);
set1.add(e4); set1.add(e5); set1.add(null);
} System.out.println(set1);//ligne 15
public boolean equals(Object o) {
if (!(o instanceof Etudiant)) {
Questions:
return false;
}
1) Quel est le résultat affiché par:
return this.nom .equals(((Etudiant)o).nom); System.out.println(set1); de la ligne 15
} 2) Conclusions?
public int hashCode() { 3) Créer un autre HashSet set2, et faites
return nom.hashCode(); les opérations d’union, de soustraction,
} et d’intersection
} Remplacer HashSet par LinkedHashSet puis
3
Par TreeSet et exécuter le programme!!
Les Collections
Exemples et exercices de
mise en œuvre des
Collections et maps
3
Mapping entre les ensembles
Besoin:
Faire un mapping entre les éléments d’un ensemble
vers un autre ensemble
Définition
une collection non ordonnée qui associe un ensemble de
valeurs d'éléments avec un jeu de clés afin que les éléments
peuvent être trouvés très rapidement (Complexité:O (1))
Chaque clé peut apparaître au plus une fois (pas de clés en double)
Une clé est mappée à au plus une valeur
les principales opérations:
put(key, valeur) : "Mapper key vers valeur.“
get(key): “Quelle valeur correpond à key"
4
Map
4
Les Classes concrètes
4
Map
Exemple 1
HashMap grades = new HashMap();
grades.put("Martin", "A");
HashMapEntry
grades.put("Nelson", "F");
grades.put("Milhouse", "B");
System.out.println(
grades.get("Nelson"));
5 "Milhouse" "B"
System.out.println(
grades.get("Martin"));
4
Les Maps
Exemple 2
public static void main(String arg[]){ Le résultat du programme
String tab[]={"A B", "C D", "H I", "M N", "M
N"}; A B , null
Map<String, Integer> map1=new C D , null
HashMap<>(); H I , null
int val=0; M N , null
for (String s : tab){ MN,3
Integer z=map1.get(s); {M N=4, H I=2, C D=1, A B=0}
System.out.println(s+ " , "+z); {M N=4, H I=2, C D=5, A B=0}
map1.put(s, val); {M N=4, H I=5, C D=5, A B=0}
val=val+1;
}
System.out.println(map1);
map1.put("C D", val);
System.out.println(map1);
map1.put("H I", val);
System.out.println(map1);
}
4
Les Maps
Exercice
Soit le tableau de chaines de caractères suivant:
String tab[]={"A B", "C D", "H I", "M N", "M N", "A B", "H I", "A B", "C D" };
Exemple 1
// map names to list of phone numbers
Map m = new HashMap();
m.put("Marty", new ArrayList());
...
ArrayList list = m.get("Marty");
list.add("253-692-4540");
...
list = m.get("Marty");
list.add("206-949-0504");
System.out.println(list);
[253-692-4540, 206-949-0504]
4
Les collections composées
Exemple 2
/ map names to set of friends
Map m = new HashMap();
m.put("Marty", new HashSet());
...
Set set = m.get("Marty");
set.add("James");
...
set = m.get("Marty");
set.add("Mike");
System.out.println(set);
if (set.contains("James"))
System.out.println("James is my friend");
{Mike, James}
James is my friend
4
Programmation Orientée Objets avec JAVA
Les Collections
4
Java Collections Framework
49