Bonsoir,
Mon problème est que je voudrais pouvoir trier un vecteur d'objets par ordre alphabétique. Je m'explique, j'ai une classe "Promotion" et une classe "Etudiant" comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class Promotion implements Comparable { private Vector<Etudiant> liste_etud = new Vector<Etudiant> (); private int annee; ....Dans ma classe Promotion j'aimerai avoir une méthode qui me tri mon vecteur par ordre alphabétique par rapport aux nom de chaque étudiants qu'il contient. (J'espère jusque là avoir été bien clair).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class Etudiant { private String nom; public String getNom () { return nom; } ...
J'ai donc regarder la FAQ pour voir si il y avait un moyen de faire et je suis tomber la dessus:
http://java.developpez.com/faq/java/...rierCollection
Seulement cela ne marche pas . J'ai créer une méthode compareTo:
Cela ne peut marcher car je comparerai toujours les 2 mêmes étudiants.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public int compareTo (Object other) { String etudiant1 = ((Promotion) other); //ici je ne pourrai accéder qu'à un seul étudiant du vecteur donc ça ne marchera pas. String etudiant2 = this.; //idem ici pour un autre if (etudiant1.compareTo(etudiant2) < 0) { return -1; } else if (etudiant1.compareTo(etudiant2) == 0) { return 0; } else { return 1; } }
Ensuite j'ai beaucoup d'erreur qui s'affiche (j'utilise éclipse) qui sont:
- au niveau de implements Comparable : Comparable est de type brut. Les références au type générique Comparable<T> doivent être paramétrées.
- au niveau de Collections.sort (liste_etud); : Limite incohérente : La méthode générique sort(List<T>) de type Collections n'est pas applicable pour les arguments (List<Etudiant>). Le type
déduit Etudiant n'est pas un substitut valide pour le paramètre lié <T extends Comparable<? super T>>
Je pense qu'il doit y avoir un moyen simple. Auriez-vous un exemple à me donner svp ?
Partager