[JAVA] Problème Vector à 2 dimensions
Résolu
fire_bird
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
fire_bird Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
fire_bird Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà c'est très simple, et sûrement très bête, mais je ne comprends quand même pas ce qui se passe?? Quelqu'un pourrait-il m'aider?
J'ai mis ci-dessous le code que je ne comprends pas.
Je ne comprends pas pourquoi lorsqu'on modifie la liste2, alors la liste1 est aussi modifiée?
Comment peut-on modifier la liste2 sans que la liste1 se modifie? (liste2 est une variable que je veux utiliser pour stocker différentes choses que je mets ensuite au fur et à mesure dans liste1)
Aidez-moi svp...
-------------
CODE:
Vector liste1 = new Vector();
Vector liste2 = new Vector();
liste2.addElement("0");
liste2.addElement("1");
liste2.addElement("2");
liste1.addElement(liste2);
System.out.println("liste1" + liste1);
System.out.println("liste2" + liste2);
liste2.removeElement("1");
System.out.println("liste1" + liste1);
System.out.println("liste2" + liste2);
------------------------
RESULTATS obtenus:
liste1[ [0, 1, 2] ]
liste2[0, 1, 2]
liste1[ [0, 2] ]
liste2[0, 2]
Voilà c'est très simple, et sûrement très bête, mais je ne comprends quand même pas ce qui se passe?? Quelqu'un pourrait-il m'aider?
J'ai mis ci-dessous le code que je ne comprends pas.
Je ne comprends pas pourquoi lorsqu'on modifie la liste2, alors la liste1 est aussi modifiée?
Comment peut-on modifier la liste2 sans que la liste1 se modifie? (liste2 est une variable que je veux utiliser pour stocker différentes choses que je mets ensuite au fur et à mesure dans liste1)
Aidez-moi svp...
-------------
CODE:
Vector liste1 = new Vector();
Vector liste2 = new Vector();
liste2.addElement("0");
liste2.addElement("1");
liste2.addElement("2");
liste1.addElement(liste2);
System.out.println("liste1" + liste1);
System.out.println("liste2" + liste2);
liste2.removeElement("1");
System.out.println("liste1" + liste1);
System.out.println("liste2" + liste2);
------------------------
RESULTATS obtenus:
liste1[ [0, 1, 2] ]
liste2[0, 1, 2]
liste1[ [0, 2] ]
liste2[0, 2]
A voir également:
- [JAVA] Problème Vector à 2 dimensions
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Supercopier 2 - Télécharger - Gestion de fichiers
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
1 réponse
Bonjour à tous,
Voilà finalement j'ai résolu le problème.
Petite explication:
Les objets ne se comportent pas comme les types primitifs... Une copie n'est pas faite de liste2... et donc ce qu'il faut faire c'est cloner ( à l'aide de .clone() ) liste2 dans une autre variable temporaire: liste_temp. C'est cette dernière que l'on met dans liste1, et ainsi on peut changer liste2, sans changer liste1 ....
A+
Voilà finalement j'ai résolu le problème.
Petite explication:
Les objets ne se comportent pas comme les types primitifs... Une copie n'est pas faite de liste2... et donc ce qu'il faut faire c'est cloner ( à l'aide de .clone() ) liste2 dans une autre variable temporaire: liste_temp. C'est cette dernière que l'on met dans liste1, et ainsi on peut changer liste2, sans changer liste1 ....
A+