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 :

Modif d'un arrayListe étrange


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut Modif d'un arrayListe étrange
    Bonjour, voila je viens de résoudre un problème mais je me demande si cette démarche fait partie des bonnes pratiques.

    Auparavant j'avais le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ArrayList<Point[]> listeClicks = new ArrayList<Point[]>();
    		Point[] point = new Point[2];
    		for (Solution solution : solutionsClicks) {
    			point[0] = solution.getOrigine().coordonneesPixel;
    			point[1] = solution.getFin().coordonneesPixel;
    			listeClicks.add(point);
    		}
    A chaque fois que je changeais ma variable point cela me changeait également toutes les occurences que j'avais rajouté dans mon arrayList listeClicks. Du coup j'ai changé mon code pour le suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ArrayList<Point[]> listeClicks = new ArrayList<Point[]>();
    		Point[] point = null;
    		for (Solution solution : solutionsClicks) {
    			point = new Point[2];
    			point[0] = solution.getOrigine().coordonneesPixel;
    			point[1] = solution.getFin().coordonneesPixel;
    			listeClicks.add(point);
    		}
    Tout marche bien maintenant mais je trouve ce comportement vraiment bizarre, pouvoir changer les anciennes occurences de mon tableau. Y'a t'il un article des les tutos ou la FAQ de developpez.com qui explique ce comportement. D'ailleurs cette façon de faire est-elle la bonne ou faut-il pas mieux que je clone mon point?

  2. #2
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Non c'est exactement comme ça qu'il faut faire. Ta liste doit bien contenir des points différents, il est donc tout à fait normal d'instancier autant de points qu'il faut.
    Ton précédent algorithme faisait ceci :
    - Je crée une liste vide.
    - Je crée un point.
    - Je fais une boucle dans laquelle je change des propriétés de mon point, et je l'ajoute à ma liste.
    Ce qui donnait une liste remplie avec le même point, dont les propriété étaient déterminées par la dernière fois que tu les avais changées.

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

Discussions similaires

  1. Plantage étrange aprés modification des ressources
    Par jcloupgarou dans le forum Visual C++
    Réponses: 1
    Dernier message: 11/05/2012, 20h49
  2. Réponses: 1
    Dernier message: 12/08/2010, 16h56
  3. modification controle contenus dans une arraylist
    Par bobby51 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/04/2009, 15h48
  4. [Paradox] Messages étranges, modifications perdues
    Par quedudev dans le forum Bases de données
    Réponses: 4
    Dernier message: 22/01/2009, 14h07
  5. modification d'une ArrayList
    Par p'tite dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 30/05/2007, 09h36

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