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 :

Modifier un objet dans un ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut Modifier un objet dans un ArrayList
    Salut !

    je suis confronté à un problème concernant les ArrayList :


    En ayant le code suivant
    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
     
    class Game {
    public static ArrayList <Element> elements;
    public static Player player1;
    ...
    }
     
    class Element {
    ...
      public void draw() {
    }
    ...
    }
     
    class Player {
         Element element;
    }

    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Game.elements.add(Player1.element);
    for (Element element : Game.elements) {
           element.draw();
    }
     
    // appel ulterieur
     
    Game.player1.element = new Element();
    l'élement en question ne s'affichera plus

    pourtant, player.element est une adresse à laquelle je crée un nouvel objet, et dans l'ArrayList Game.elements est sensé stocker des adresse non ?

    Des explications sont les bienvenus ^^

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    en java tout object est référence.


    Autrement dit, quand vous faites:

    Game.elements.add(Player1.element);

    Vous ajoutez dans la liste, une référence qui a la valeur que la référence Player1.element. Appellons là Element@444719

    quand vous faites
    Game.player1.element = new Element();
    vous stockez dans player1.element une nouvelle référence (Element@cafebabe), mais vous n'avez pas touché aux références qui sont dans la liste, qui elle contiens toujours Element@444719. Autrement dit, vous avez maintenant 2 objets Element distincts.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/08/2008, 21h10
  2. Réponses: 4
    Dernier message: 19/06/2007, 10h41
  3. [vb.net]indexof d'un objet dans un arraylist
    Par Golzinne dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/10/2006, 21h09
  4. [vb.net]modifier un objet dans un arrayList
    Par Golzinne dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/10/2006, 13h23
  5. [C#] Tri d'objet dans une ArrayList
    Par guillaume16 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/03/2006, 12h05

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