IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

tri d'une arraylist d'interface


Sujet :

Collection et Stream Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 167
    Points
    167
    Par défaut tri d'une arraylist d'interface
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public interface ISolution extends java.lang.Comparable<ISolution>
    l'entete et la methode compareTo qui implemente ISolution :

    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; 
    	 }
    }
    Et c'est ici que je trie
    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);
    je n'ai aucun warning à la compilation, mais l'arraylist n'est pas trie et je ne vois pas trop pourquoi.

    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

  2. #2
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Plusieurs choses...

    Déjà je pense que le problème vient de evaluer() (montre-nous le code).
    Ensuite, pour la comparaison if(nombre1 == nombre2) : il ne faut "jamais" (enfin, presque jamais) comparer des doubles avec ==. En effet, avec la précision machine, si tu compares 1 et 1 + 10^-16 c'est pas égal... alors que c'est juste une erreur de calcul.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 167
    Points
    167
    Par défaut
    je viens de trouver l'erreur, c'etait completement ailleurs, je ne chargais pas le bon bean et la methode evaluer etaids donc mauvaise.

    merci pour la lanterne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tri d une arraylist
    Par *alexandre* dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 22/09/2008, 10h03
  2. Probleme interface iterator dans une ArrayList
    Par inzagi dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 25/02/2008, 19h05
  3. Tri d'une ArrayList de tableaux
    Par Alqualonde dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 20/12/2006, 15h22
  4. [C#] Tri d'objet dans une ArrayList
    Par guillaume16 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/03/2006, 12h05
  5. Accès au port 700h pour une carte d'interface
    Par haypo dans le forum Matériel
    Réponses: 3
    Dernier message: 07/11/2002, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo