Bonsoir,

Afin de comprendre le bon foctionnement des collectors à savoir les Set et TreeSet, j'ai fait un tout petit programme pour les manipuler, seulement dés le départ je trouve un problème !!

j'ai créer une classe étudiant ou on donne juste le nom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
public class Etudiant {
 
    private String n;
    public Etudiant(String nom)
    {
        this.n = nom;
    }
    public String getNom ()
    {
        return n;
    }
}
et un TreeSet d'étudiant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
public static void main(String[] args) {
 
    Set set = new TreeSet<Etudiant>();
    set.add(new Etudiant("nom1"));
    set.add(new Etudiant("nom2"));
    Etudiant et1;
 
    Iterator iterator = set.iterator();
    while (iterator.hasNext()) 
    {
        et1 = (Etudiant) iterator.next();
        System.out.println(et1.getNom() );
    }
  }
il m'affiche cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Exception in thread "main" java.lang.ClassCastException: essaye.Etudiant cannot be cast to java.lang.Comparable
	at java.util.TreeMap.compare(TreeMap.java:1188)
	at java.util.TreeMap.put(TreeMap.java:531)
	at java.util.TreeSet.add(TreeSet.java:255)
	at essaye.Essaye.main(Essaye.java:24)
Java Result: 1
puis-je connaitre le problème s'il vous plait ?