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

Langage Java Discussion :

utiliser les références des méthode


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut utiliser les références des méthode
    Bonsoir,

    Je veux utiliser le référence vers une méthode a la place de créer un comparator, pour implémenter PriorityQueue<>

    j'ai utilisé ce code mais il fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public int comparerA(Exm c){
     
    		return (this.nbrMalPlaces() ) - (c.nbrMalPlaces() );
    	}
     
    public void f1(){
                    liste = new PriorityQueue<Exm >();
    		liste .comparator(Exm::comparerA);

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    on ne peut pas changer le Comparator d'une PriorityQueue qui existe déjà. Si on veut définir une PriorityQueue en lui fournissant un Comparator précis, il faut le faire dès le constructeur et pas après.

    Ça ressemblerait à ceci : liste = new PriorityQueue<>(Exm::comparerA); .
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    merci pour la réponse, peut etre que mon code n'est pas claire, mais j'ai pas encore instancier PriorityQueue.
    voilà mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    private PriorityQueue<Exm> liste ;
     
    public int comparerA(Exm c){
     
    		return (this.nbrMalPlaces() ) - (c.nbrMalPlaces() );
    	}
     
    public void f1(){
                    liste = new PriorityQueue<Exm >();
    		liste .comparator(Exm::comparerA);
    }

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Euh ?

    J'ai bien vu ton code, et on voit parfaitement un new PriorityQueue<Exm >() .
    Trop tard donc, pour ajouter un Comparator après cette instanciation. Il faut le faire dans le constructeur, pas après.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [EJB2] Gardez les références des EJB session spécification 2.0
    Par jadey dans le forum Java EE
    Réponses: 3
    Dernier message: 15/02/2010, 10h23
  2. [XL-2003] Combobox en utilisant les noms des feuilles
    Par Nikes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/06/2009, 22h57
  3. Réponses: 3
    Dernier message: 23/03/2009, 20h34
  4. Réponses: 28
    Dernier message: 09/01/2007, 16h30
  5. [Conception] Utiliser les fonctions des tableaux ou plusieurs requêtes ?
    Par Derik dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 01/02/2006, 09h54

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