Bonjour a tous,
voila,je veux trier une arraylist qui ne contient que des interfaces. la methode compareTo est implementée dans la classe qui implemente ISolution.
voici l'en tete de la declaration de l'interface :
l'entete et la methode compareTo qui implemente ISolution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public interface ISolution extends java.lang.Comparable<ISolution>
Et c'est ici que je trie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class SolutionImpl implements ISolution { public int compareTo(ISolution other) { double nombre1 = ((SolutionImpl) other).evaluer(); double nombre2 = this.evaluer(); if (nombre1 > nombre2) return -1; else if(nombre1 == nombre2) return 0; else return 1; } }
je n'ai aucun warning à la compilation, mais l'arraylist n'est pas trie et je ne vois pas trop pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //la liste à trier protected java.util.List<ISolution> solutions; //l'appel du trie Collections.sort(solutions);
est ce un probleme dans la déclaration de mes classes ou de mes interfaces ou plus simplement un probleme sur la methode compareTo (methode que j'ai trouvé sur la faq, dc peu de chance qu'elle soit fausse) ?
Merci de votre aide
Partager