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

Java Discussion :

Modifier des objets d'une collection


Sujet :

Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 118
    Par défaut Modifier des objets d'une collection
    Salut tout le monde,

    J'ai un ensemble d'objets dans une collection (Set).
    Est-ce que je pourrais intervenir pour modifier certains attributs de ces objets là ?

    Merci

  2. #2
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut
    Salut:

    Utilises un Iterator pour accéder aux éléments d'un objet Set.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut
    Salut:

    Modifier des éléments d'un objet Set peut briser la régle d'unicité des objets.

    Donc il faut faire attention.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 118
    Par défaut
    Salut,
    Et comment je peux accéder à l'objet à travers son Iterator?
    Voilà j'ai le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set<Maclasse> MonSet;
    //Après initialisation de MonSet qui est un ensemble d'objets de MaClasse, je veux accéder à certains attributs de chaque objet pour les modifier.
     for (Iterator i=MonSet.iterator(); i.hasNext();){
              ??????  
            }
    Merci par avance

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set<Maclasse> MonSet;
    //Après initialisation de MonSet qui est un ensemble d'objets de MaClasse, je veux accéder à certains attributs de chaque objet pour les modifier.
    for (Iterator i=MonSet.iterator(); i.hasNext();){
              Object obj = i.next();
    }

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Comme on est en Java 5.0 et que la collection est paramétré, autant conserver le type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set<Maclasse> MonSet;
    //Après initialisation de MonSet qui est un ensemble d'objets de MaClasse, je veux accéder à certains attributs de chaque objet pour les modifier.
    for (Iterator<Maclasse> i=MonSet.iterator(); i.hasNext();){
              Maclasse obj = i.next();
    }
    Ou mieux avec la boucle for étendus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (Maclasse obj : monSet) {
         // ...
    }

    Maintenant, comme cela a été dit, si l'objet est modifié de telle manière que cela impacte les méthodes hashCode()/equals(), cela peut poser d'étranges problèmes...


    a++

  7. #7
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Par défaut
    Salut:

    Il est impérative de récréer l'objet Set après avoir modifier ses éléments pour ne pas avoir des éléments "égaux". (Je parle ici de l'égalité telle qu'elle définie par la méthode equals()).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set<MyClass> set = new HashSet<MyClass>();
    
    // Peupler la collection
    // ...
    
    // Modifier quelques objets de la collections
    // ...
    
    // Recréer la collection (supprimer les doublons)
    set = new HashSet<MyClass>(set);

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

Discussions similaires

  1. [VB.NET] Suppression d'objets dans une collection
    Par master56 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/06/2010, 21h46
  2. Réponses: 0
    Dernier message: 23/05/2009, 15h18
  3. [PHP 5.0] Stocker des objets dans une collection
    Par kaljerhom dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2009, 21h38
  4. Réponses: 4
    Dernier message: 22/12/2005, 11h43
  5. exporter des objets d'une base vers une autre
    Par RGShoop dans le forum Access
    Réponses: 3
    Dernier message: 07/09/2005, 11h52

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