[Vector]:utiliser une donnée récupérée à partir d'un Vecteur

cs_nikitidz Messages postés 2 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 1 mai 2005 - 1 mai 2005 à 13:40
bjdc Messages postés 16 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 18 mai 2005 - 7 mai 2005 à 14:31
bonjour tous le monde,
je posséde un Vecteur de tableaux d'entier (Possibilities). le remplissage
c'est ok mais quand je récupère une donnée de ce Vecteur et que je la
modifie, je trouve que celle se trouvant dans le Vecteur change aussi.
voici le code:
int Possibility[]=Possibilities.get(0);
int temp=Possibility[0];
Possibility[0]=Possibility[Possibility.Length-1];
Possibility[Possibility.Length-1]=temp;
Si au départ Possibilities[0] contient l'élément {2,1,4} et que Possibility apres
permutaion contient {4,1,2} alors je trouve Possibilities[0] ={4,1,2}

merci,

Blind in Lightness

4 réponses

cs_nikitidz Messages postés 2 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 1 mai 2005
1 mai 2005 à 13:48
Blind in Lightness
0
ObiWanKennedy Messages postés 60 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 29 octobre 2010 1
1 mai 2005 à 15:34
déclare ton Possibilities en final

I am a heap of shit to human appearance
0
bjdc Messages postés 16 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 18 mai 2005
7 mai 2005 à 13:56
Premiere chose : en java les tableaux sont des objets autant que des
types. Cela vient du fait qu'il n'est pas possible de creer de nouveaux
types primitifs en Java, et qu'il cree a la place une pseudo classe.



La methode get ne duplique pas l'objet, elle t'en donne une reference.
Donc effectivement que tu utilises la reference dans Possibilite ou
celle de Possibility, tu manipules toujours le meme objet. Tout
objet descend de Object, tu peux donc utiliser la methode clone() pour
dupliquer l'objet.



int Possibility[]=Possibilities.get(0).clone();



Normalement clone() recopie tous les attributs.
0
bjdc Messages postés 16 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 18 mai 2005
7 mai 2005 à 14:31
Remarque : clone() n'est (bien sur :/) pas redefinit dans un tableau.

Donc recopie a la main dans un nouveau tableau :)
0
Rejoignez-nous