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 :

Collection d'objets comparables


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Collection d'objets comparables
    Bonjour à toutes et à tous,

    Voilà je planche actuellement sur un exercice portant principalement sur la généricité où il est demandé de faire la chose suivante :

    En utilisant l'interface Comparable, modi ez la classe Extremum pour qu'elle exporte la methode minmax qui retourne les valeurs minimale et maximale contenue dans un tableau d'objets comparables.

    En utilisant l'interface Comparator, modifi ez la classe Extremum de facon que la methode minmax retourne les valeurs extrêmes contenues dans une collection d'objets comparables, en fonction d'une fonction de comparaison. Cette fonction de comparaison sera passee en parametre de la methode minmax.
    Sachant que la fonction sus-citée "minmax" prenant en paramètre une fonction de comparaison et une collection d'objets comparable renvoie les valeurs extrêmes dans une nouvelle collection d'objets ne contenant que le plus petit et le plus grand élement de la collection passée en paramètre. J'ai déjà fait une méthode générique avec des tableaux génériques, mais j'ai du mal à utiliser l'interface comparator, et surtout à définir cette fameuse fonction de comparaison. A vrai dire je suis un peu perdu.

    Est-ce que quelqu'un pourrait m'aiguiller sur la démarche à suivre afin d'arriver à quelque chose de concret ?

    Merci à vous par avance.

  2. #2
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Bonjour

    Tout d'abord la javadoc de Comparator : http://docs.oracle.com/javase/6/docs...omparator.html

    Est ce que vous connaissez bien les Génériques ?

    Si c'est le cas, voici un exemple de signature pour réaliser l'opération

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public <T> List<T> minmax(Collection<T> elements, Comparator<T> comparator)
    Ensuite, il suffit de parcourir elements pour trouver le min et le max. C'est dans l'écriture de la méthode que vous rencontrez un soucis ? C'est exactement le même procédé que pour trouver le min et le max avec des objets Comparables sauf que la méthode de comparaison n'est plus dans les objets de la collection mais dans l'objet comparator.

    Pour Comparator, la méthode compare retourne un nombre négatif si le premier argument est inférieur au deuxième argument, 0 si les deux arguments sont égaux et un nombre positif si le premier argument est supérieur au second argument.

    Yann

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci pour votre aide, en fait ce qui me posait des soucis de compréhension, c'est surtout cette partie là :

    en fonction d'une fonction de comparaison. Cette fonction de comparaison sera passee en parametre de la methode minmax.
    J'ai du mal à concevoir ce que cette fameuse fonction de comparaison peut faire, et quelle est son rôle dans la méthode minmax, sachant que la méthode permet déjà de faire ressortir le minimum et le maximum d'un tableau d'objets comparables, et que la modifier pour qu'elle agisse sur des collections d'objets comparables me laisse perplexe quant au rôle de l'objet Comparator.

    Pour répondre à votre question, je maîtrise assez mal les génériques d'où mes problèmes de compréhension.

    Merci pour votre aide !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Je pense avoir compris maintenant, merci pour vos indications ! Je ne me posais pas les bonnes questions en fait !

    Merci pour votre aide !

  5. #5
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Bonjour

    Citation Envoyé par Akamura Voir le message
    J'ai du mal à concevoir ce que cette fameuse fonction de comparaison peut faire, et quelle est son rôle dans la méthode minmax, sachant que la méthode permet déjà de faire ressortir le minimum et le maximum d'un tableau d'objets comparables, et que la modifier pour qu'elle agisse sur des collections d'objets comparables me laisse perplexe quant au rôle de l'objet Comparator.

    Pour répondre à votre question, je maîtrise assez mal les génériques d'où mes problèmes de compréhension.

    Merci pour votre aide !
    Oui, si les objets sont des Comparables il est légitime de se poser la question : pourquoi utiliser un Comparator alors que les objets sont comparables ?

    Imaginez une collection d'objet Personnes. Une personne à un nom et un âge. Une Personne est un Comparable qui compare le nom de deux personnes. Si maintenant je veux comparer les Personnes en fonction de leur âge, je peux utiliser un Comparator qui va comparer deux Personnes en fonction de leur âge. Le Comparator est donc très utile pour comparer des objets qui ne sont pas des Comparables ou pour comparer des Comparables de manières "différentes".

    Si votre problème est résolu, n'oubliez pas de le signaler en cliquant sur le bouton adéquat

    Yann

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/03/2006, 09h22
  2. Problème de gestion d'une collection d'objet
    Par poolky dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/02/2006, 21h51
  3. [Struts] <logic:iterate> sur une collection d objets c
    Par trax020 dans le forum Struts 1
    Réponses: 2
    Dernier message: 12/05/2005, 00h11
  4. Probléme collection d'objets
    Par Contrec dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 10h08
  5. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58

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