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 :

Methode BinarySearch avec un comparable


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut Methode BinarySearch avec un comparable
    Bonjour,
    Je dois essaye de comprendre le fonctionnement d'un programme. Mais quand j'essaye de le compiler, pas moyen, ça bloque a la méthode "binarysearch(list,object)" qui renvoi l'indice de l'objet dans la liste.
    Les objets stockées dans la liste doivent implémenter Comparable.

    Ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private List<String> personnes = new ArrayList<String>();
    ..
    positionIndex = java.util.Collections.binarySearch(personnes, new String("toto");
    Marche sans problème.
    (j'ai simplifier le problème, c'est peut être pas la syntaxe exact).

    Mais voici ce que j'aimerais faire (j'ai simplifier...)
    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
    16
    17
    18
    19
    20
    21
    22
     
    class Personne implements Comparable {
        private String nom;
     
        public Personne(String nom) {
            this.nom=nom;
        }
     
        public int compareTo(Object arg0) {
            Personne pers = (Personne) arg0;
            return this.nom.compareToIgnoreCase(pers.nom);
        }
     
    }
     
    public class test {
        static List<Personne> personnes = new ArrayList<Personne>();
     
        public static void main() {
            int i = java.util.Collections.binarySearch(personnes, new Personne("toto"));
        }
    }
    Hors cela ne marche pas.

    Le compilateur me râle dessus avec:
    test.java:34: cannot find symbol
    symbol : method binarySearch(java.util.List<Personne>,Personne)
    location: class java.util.Collections
    int i = java.util.Collections.binarySearch(personnes, new Personne("toto"));


    Visiblement, il a pas l'air de comprendre que List<Personne> est une liste qui est capable d'avoir des objets qui implémente comparable.

    Lien javadoc

    Je comprend pas très bien...

    J'ai fait une erreur quelque part?

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Il faut que personne implémente Comparable<Personne>, pas Comparable.
    Utilise plutôt la javadoc correspondant à la version de java que tu as (manifestement 5 ou 6 et pas 1.4)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 65
    Par défaut
    Merci beaucoup
    Oui j'utilise la javdoc de la version 6 via netbeans. J'avais juste copier/coller le lien ici pour vous mettre un complément d'info. J'aurais du faire gaffe a la version

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/01/2008, 10h03
  2. [nested:equal]problème avec valeur à comparer
    Par david06600 dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/11/2006, 17h47
  3. Réponses: 1
    Dernier message: 12/06/2006, 19h02
  4. Methode Entry avec Perl/Tk
    Par strach dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 21/08/2005, 15h34
  5. Réponses: 5
    Dernier message: 19/07/2004, 11h16

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