[JAVA] Problème Vector à 2 dimensions

Résolu/Fermé
fire_bird Messages postés 2 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 21 décembre 2006 - 20 déc. 2006 à 20:35
fire_bird Messages postés 2 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 21 décembre 2006 - 21 déc. 2006 à 10:32
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]
A voir également:

1 réponse

fire_bird Messages postés 2 Date d'inscription mercredi 20 décembre 2006 Statut Membre Dernière intervention 21 décembre 2006 1
21 déc. 2006 à 10:32
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+
1