Académique Documents
Professionnel Documents
Culture Documents
• Principales méthodes
• int size()
• boolean isEmpty()
• boolean add(Object o)
• boolean remove(Object o)
• boolean contains(Object o)
• void clear()
• Iterator iterator()
L’interface Iterator 7
Utilisation d’itérateur 8
Iterator it = c.iterator();
while (it.hasNext()) {
• Utilisation du « for each »
System.out.print(it.next().getClass()); • Fonctionne pour tous les objets implémentant l’interface
System.out.println(" - " + it.next()); Iterable (en particulier les collections)
}
public static void main(String[] args) {
class java.lang.String - un Collection c = new HashSet();
class java.lang.String c.add("un");
Exception in thread "main" java.util.NoSuchElementException c.add("deux");
c.add("trois");
Iterator it = c.iterator();
while (it.hasNext()) {
for (Object o : c) { // for each Object o in c
Object o = it.next(); // Pour ne faire qu’un seul next()
System.out.println(o.getClass() + " - " + o);
System.out.println(o.getClass() + " - " + o);
}
}
}
class java.lang.String - trois
class java.lang.String - un class java.lang.String - trois
class java.lang.String - deux class java.lang.String - un
class java.lang.String - deux
L’interface List 11
L’interface Set 12
• Spécifie les caractéristiques d’une liste • Spécifie les caractéristiques d’un ensemble
• Suite de données ordonnées (et indexées à partir de 0) • Ensemble de données non ordonnées (cf. maths)
• Pouvant contenir des doublons • Sans doublons
• Set keySet()
• Collection values()
• D’autres algorithmes de la classe Collections
• min(l),max(l),sort(l),reverse(l),shuffle(l)…
• Exemples de classes l’implémentant
• HashMap, TreeMap
Collections.sort(l); *
for (Object o : l) {
System.out.println(o);
}
1
} 2
3
Solution 17 18
public
Notion de généricité
en Java
Comparaison 23
Remarque sur la généricité Java 24
• Pas d’héritage lié au type paramètre • Bénéficier du polymorphisme avec type paramétré
• Même si Rectangle hérite de Figure • Autoriser plusieurs types effectifs pour la collection
• List<Rectangle> n’hérite pas de List<Figure> • Imposer une contrainte d’héritage sur le contenu
Type mismatch: cannot convert from List<String> to List<Object> public static void dessinerTout(List<? extends Figure> lf) {
for (Figure f : lf) {
f.dessiner();
}
}
L’interface Comparator<E> 27
Exercice : comparateur 28
• Spécifie les caractéristiques d’un « comparateur » • Créer un comparateur qui permettra d’ordonner
• Objet spécifique selon le 1er auteur (utilisé lors d’un tri)
• pour faire des comparaisons entre 2 objets de type E
• Permet d’ajouter la comparaison à des objets n’ayant pas
de relation d’ordre naturelle
• Permet de comparer suivant n’importe quel critère
• Exemple : utilisé comme 2e paramètre de la méthode Collections.sort()
public T getValeur() {
return this.valeur;
}
}
Solution 35
public class