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 :

Affichage d'éléments d'un ArrayList


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut Affichage d'éléments d'un ArrayList
    Saluuut!!

    Je solicite (encore) votre aide car j'ai un petit problème pour afficher les éléments de mon tableau:
    j'ai une classe Media :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    class Media {
       private final String support;
       private final String titre;
       private int nbExemplaires;
     
       public Media(String support, String titre) {
          this.support = support;
          this.titre = titre;
          nbExemplaires = 1;
       }
     
       String getSupport() {
          return this.support;
       }
     
       String getTitre() {
          return this.titre;
       }
     
       int getNbExemplaires() {
          return this.nbExemplaires;
       }
     
       void setNbExemplaires() {
          this.nbExemplaires = this.nbExemplaires + 1;
       }
     
       void affiche() {
          System.out.println(this.titre +"("+this.support+")x"+this.nbExemplaires);
       }
     
       boolean estEgalA(Media el) {
          return (this.titre.equals(el.titre) && this.support.equals(el.support));
       }
    }
    une classe Mediatheque :
    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
    23
    24
    import java.util.*;
     
    class Mediatheque {
       ArrayList<Media> contenu;
     
       public Mediatheque() {
          contenu = new ArrayList<Media>();
       }
     
       void ajoute(Media el) {
          if(this.contenu.contains(el)) {
             el.setNbExemplaires();
          }
          else {
             this.contenu.add(el);
          }
       }
     
       void affiche() {
          for(int i = 0; i < this.contenu.size(); i++) {
             System.out.println(this.contenu.get(i));
          }
       }
    }
    et une classe contenant un main :
    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
    23
    24
     
    class Principal {
     
       public static void main(String[] args) {
          /*Media media1 = new Media("DVD","Harry Potter");
          Media el = new Media("DVD","Harry Potter");
          
          System.out.println(media1.getNbExemplaires());
          System.out.println(media1.getTitre());
          System.out.println(media1.getSupport());
          media1.affiche();
          System.out.println(media1.estEgalA(el));*/
     
          Mediatheque mesMedias = new Mediatheque();
          mesMedias.ajoute(new Media("Titre1","Photocopie"));
          mesMedias.ajoute(new Media("Titre1","Photocopie"));
          mesMedias.ajoute(new Media("Titre1","Photocopie"));
          mesMedias.ajoute(new Media("Titre2","Photocopie"));
          mesMedias.ajoute(new Media("Les Malheurs de Sophie", "Livre"));
          mesMedias.ajoute(new Media("Les Malheurs de Sophie", "Dvd"));
          mesMedias.ajoute(new Media("Les Malheurs de Sophie", "Livre"));
          mesMedias.affiche();
       }   
    }
    Voila donc le probleme ce situe à l'affichage puisque en fait, j'ai le droit à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Media@7d23b9c1
    Media@6ddbe1c9
    Media@7ec48b77
    Media@19a072a6
    Media@74c6fd6e
    Media@34287ca7
    Media@4e0fd2b1
    je ne sais pas pour quelle raison il m'affiche les adresses de mes objets , ou est- ce que j'ai faux ? merci

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Simplement parce que par defaut, java va chercher dans l'objet après la méthode toString() pour recuperer un string a afficher. Celui ci par defaut donne ce que tu as.

    Tu dois donc redefinir la méthode to string dans ton objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public String toString(){
            return "ce qu il te plaire";
    }
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    ok merci ca fonctionne, j'arrive a afficher les éléments de ma liste , cependant j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Titre1 (Photocopie)x1
    Titre1 (Photocopie)x1
    Titre1 (Photocopie)x1
    Titre2 (Photocopie)x1
    Les Malheurs de Sophie(Livre)x1
    Les Malheurs de Sophie(DVD)x1
    Les Malheurs de Sophie(Livre)x1
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Titre1 (Poly) x3
    Titre2 (Poly) x1
    Les Malheurs de Sophie (Livre) x2
    Les Malheurs de Sophie (Dvd) x1
    je vois pas où est le probleme avec ma méthode ajoute!! normalement vu que le deuxieme objet est le meme que le précédent , il devrait afficher x2 et non pas le ré-afficher non?

  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
    Si tu veux pouvoir utiliser List.contains(), redéfinir toString() ne suffisait pas. Tu dois aussi redéfinir equals().
    Voir la FAQ : Pourquoi et comment redéfinir la méthode equals() ?

    Malheureusement, ça ne suffira pas quand même. Parce que l'objet Media sur lequel tu appelles setNbExemplaires() n'est pas celui qui est déjà dans la List. Donc cela n'aura aucun effet sur celui qui est déjà dans la List. Donc la List contiendra l'objet Media dont le nombre d'exemplaires est toujours 1.
    Tu peux t'en sortir en allant chercher celui qui est bien dans la List, avec indexOf() et get().

    ... Mais en réalité, tout ça est si difficile parce que tu t'y prends mal. D'abord, un objet Media ne devrait pas compter lui-même en combien d'exemplaires il est. C'est la médiathèque qui devrait s'en occuper.
    Et La médiathèque ne devrait pas utiliser une List, avec laquelle il est difficile de retrouver un Media précis. Elle devrait utiliser une Map, structure indexée qui simplifie la recherche.
    Ici le plus simple serait une HashMap<Media, Integer>. La clé est le Media, la valeur est le nombre d'exemplaires dans la médiathèque.

    Pour ajouter un Media qui n'y étais pas encore, il faut mettre une nouvelle clé de compte 1 : contenu.put(media, 1);.
    Pour augmenter le nombre d'un Media qui y était déjà, il faut changer la valeur associée à la clé, pour que ce soit 1 de plus : contenu.put(media, contenu.get(media) + 1);.

    ... C'est le principe, mais pour utiliser une HashMap, redéfinir equals() ne suffit pas. Il faut aussi redéfinir hashCode(). Voir la FAQ : Pourquoi et comment redéfinir la méthode hashCode() ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    Merci de ta réponse thelvin, en fait j'utilise un ArrayList car il m'est imposé et de toute facon je ne sais pas encore ce qu'est une map.
    De plus je débute avec cet objet donc je galère un petit peu, dsolé si je fais n'importe quoi!!

    En fait j'aimerai comprendre mieux comment cet objet fonctionne, là par exemple, dans ma classe Mediatheque, je devais creer une methode ajoute(Media nomMedia) qui ajoute le media dans la liste s'il n'existe pas et sinon augmenter le nombre nbExemplaires (d'où l'affichage final dans mon précédent poste), j'ai donc utilisé une méthode contains() pour voir si mon objet Media existe dans la liste, et une méthode ladd() pour l'ajouter s'il n'existe pas deja (est-ce correcte?).
    Il fallait alors que je redéfinisse des méthodes mais j'ai pas totalement compris pourquoi, malgré le lien que tu m'as fourni ..

    Bon ca en fait des interrogations, prenez votre temps

  6. #6
    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
    Citation Envoyé par tamerla Voir le message
    j'ai donc utilisé une méthode contains() pour voir si mon objet Media existe dans la liste, et une méthode ladd() pour l'ajouter s'il n'existe pas deja (est-ce correcte?).
    Ma foi oui.
    Le problème c'est comment changer le nombre d'exemplaires présents.

    Citation Envoyé par tamerla Voir le message
    Il fallait alors que je redéfinisse des méthodes mais j'ai pas totalement compris pourquoi, malgré le lien que tu m'as fourni ..
    C'est simple : comment la méthode contains() est-elle censée savoir que l'objet Media que tu lui donnes en paramètre, est équivalent à un autre objet Media qui est déjà dans la liste ? Ce sont deux objets différents qui ont chacun été créés avec new ! Il n'y a aucune raison de penser que ce sont les mêmes.

    Tu te dis, "ben, les deux objets sont les mêmes s'ils contiennent le même titre et le même support." Et ça te paraît logique, parce que ça t'arrange. Mais c'est pas logique. D'abord les deux objets ont été créés avec deux new, donc non, c'est pas les mêmes. Ensuite, pourquoi il faudrait regarder que les deux String titre et support, mais pas le int nbExemplaires ? Ça n'a aucun sens.

    Java ne peut pas deviner qu'est-ce qu'il faut faire pour que contains() considère que deux objets différents soient égaux. Définir la méthode equals() sert à le lui dire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    ok merci ,après relecture j'ai finalement compris pourquoi il était nécessaire de redéfinir les méthodes utilisées par contains(), mais ça m'étonne d'avoir besoin de faire tout ca pour quelque chose d'aussi simple! Je veux juste voir si un objet est présent dans ma liste , si oui, augmenter son nombre d'exemplaires, sinon, l'ajouter dans la liste.

    Est -ce que c'est possible de faire ça avec une simple boucle for avec les ArrayList sans utiliser contains()?

  8. #8
    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
    Citation Envoyé par tamerla Voir le message
    mais ça m'étonne d'avoir besoin de faire tout ca pour quelque chose d'aussi simple!
    Ce n'est pas si simple que ça puisque tu as créé ta propre classe avec plus d'un élément déterminant (deux String.) C'est simple quand on utilise juste String, Date, Integer... Ou qu'on ne recherche qu'en se basant sur exactement 1 d'entre eux.

    Citation Envoyé par tamerla Voir le message
    Est -ce que c'est possible de faire ça avec une simple boucle for avec les ArrayList sans utiliser contains()?
    Possible oui, pourquoi pas ? Qu'est-ce qui t'empêche d'essayer ?
    Mais utiliser indexOf() serait tout de même plus pratique... Et nécessite, comme contains(), d'implémenter la méthode equals().
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    J'ai finalement redéfini la méthode equals() , j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       public boolean equals(Media el) {
          if(this == el) return true;
          if(el instanceof Media) {
             if(this.titre != el.titre) return false;
             if(this.support != el.support) return false;
             if(this.nbExemplaires != el.nbExemplaires) return false;
          }
          return true;
       }
    est-ce que c'est ça? (j'ai pas compris toutes les lignes du code dans "pourquoi et comment redefinir la méthode equals")
    puis j'ai essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         for(int i = 0; i < this.contenu.size(); i++) {
             if(this.contenu.get(i).equals(el)) {
                el.setNbExemplaires();
    bon ca à pas l'air de marcher vu que rien ne s'affiche , puis j'ai re-essayé avec contains() mais toujours le mauvais affichage! Je comprends plus

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par tamerla Voir le message
    J'ai finalement redéfini la méthode equals() , j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       public boolean equals(Media el) {
          if(this == el) return true;
          if(el instanceof Media) {
             if(this.titre != el.titre) return false;
             if(this.support != el.support) return false;
             if(this.nbExemplaires != el.nbExemplaires) return false;
          }
          return true;
       }
    En fait, non. Tu as juste créer une nouvelle méthode equals() qui prend un argument de type Media. La méthode qu'il faut redéfinir, c'est la méthode equals() avec un argument de type Object. Ce n'est pas parce que l'instance, qui sera testée, sera de classe Media, que ta méthode equals(Media) sera appelée par un code qui manipule des instances par le type Object (par des variables de type Object). C'est d'ailleurs pour cette raison que la méthode contains() continue de ne pas fonctionner : son code manipule de l'Object, et non pas, évidemment, ta classe personnelle Media.

    Tu peux écrire une méthode equals(Media) comme tu as fait, qui sera appelée lorsque tu l'appelleras en lui passant une variable de type Media, mais il faut également rédéfinir la méthode equals(Object), ce que tu peux faire simplement, en ajoutant ça, en plus, à ta classe Media, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public boolean equals(Object object) {
         if ( object instance Media ) { // si l'instance testée est une instance de la classe Media, alors
              return equals((Media)object); // le fait de caster va forcer l'appel de equals(Media).
         } else {
              return super.equals(object); // sinon, on appelle le code de la classe parente 
         }
    }
    Par ailleurs, ta méthode equals(Media) présente une petite erreur : si l'instance de Media passée en argument est null, equals(Media) retourne true. Ce qui est de toute évidence faux. Au lieu de faire if(el instanceof Media) { qui sera forcément vraie, sauf si el est null, fait tout simplement if (el != null ) {
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Reponse
    C'est evident l'erreur,parce que la fonction System.out.println a pour argument d'objet String.

    this.contenu.get(i) retour un Objet Media à l'indice i.
    voici une code pour debogguer ça:
    Modifier la fonction void affiche();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void affiche() {
          for(int i = 0; i < this.contenu.size(); i++) {
             System.out.println("Titre: "+this.contenu.get(i).getTitre()+", Support:  "+this.contenu.get(i).getSupport());
          }
       }

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Lynah Voir le message
    C'est evident l'erreur,parce que la fonction System.out.println a pour argument d'objet String.
    Non, cette méthode est polymorphique et peut être appelée avec un argument de type String, int, boolean... et Object. Dans le cas de l'objet, comme dit ci-avant, la méthode println(Object) utilise la méthode toString() de l'objet passé en argument pour déterminer la forme de l'affichage.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    Merci a tous pour vos réponses.
    Donc la méthode contains() a fini par marcher avec l'ajout du code de joel.drigo mais ca me semblait un peu compliqué (en tout cas j'en aurai appris des trucs!), alors j'ai utilisé une simple boucle for:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       void ajoute(Media el) {
          for(int i = 0; i < this.contenu.size(); i++) {
             if(this.contenu.get(i).estEgalA(el)) {
                this.contenu.get(i).setNbExemplaires();
             }
             else {
               this.contenu.add(el);
             }
          }
       }
    problème : rien ne veut s'afficher . D'ou cela peut venir? (derniere question normalement )

  14. #14
    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
    Humm... Ta boucle for te sert à chercher si l'élément est déjà dans la liste, n'est-ce pas ?

    Et s'il n'est pas déjà dans la liste, alors là il faut l'ajouter à la liste, on est d'accord ?
    Du coup, l'ajout à la liste peut-il vraiment être dans la boucle for ? Par exemple, au début, quand la liste est vide, combien de fois boucle-t-on dans le for ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    Oui en effet... voila
    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
      void ajoute(Media el) {
          boolean test = false;
          int objet = 0;
          for(int i = 0; i < this.contenu.size(); i++) {
             if(this.contenu.get(i).estEgalA(el)) {
                test = true;
                objet = i;
             }
          }
          if(test) {
             this.contenu.get(objet).setNbExemplaires();
          }
          else {
             this.contenu.add(el);
          }
    merci à tous , problème résolu

  16. #16
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Un peu de JDK 8 histoire de compléter le tout, vu que ça sort bientôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    contenu.forEach((final Media  media) -> {
      System.out.println("Titre: "+media.getTitre()+", Support:  "+media.getSupport());
    });
    Ou, histoire d’être plus réutilisable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public final class MediaUtils {
      public void printMedia(final Media  media) {
        System.out.println("Titre: "+media.getTitre()+", Support:  "+media.getSupport());
      }
    }
     
    [...]
     
    contenu.forEach(MediaUtils::printMedia);
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. Affichage élément d'un Arraylist
    Par sym49 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 25/04/2010, 11h49
  2. Affichage des éléments d'une ArrayList
    Par Centauri dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 12/02/2008, 03h07
  3. Problème d'affichage d'éléments adjacents.
    Par julian_ross dans le forum DirectX
    Réponses: 2
    Dernier message: 03/04/2006, 22h50
  4. Eviter l'affichage des éléments d'une liste déroulante
    Par auriolbeach dans le forum Access
    Réponses: 1
    Dernier message: 28/02/2006, 07h50
  5. Réponses: 2
    Dernier message: 14/09/2005, 13h39

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