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 :

problème avec arraylist


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Points : 41
    Points
    41
    Par défaut problème avec arraylist
    Bonjour tout le monde,
    j'ai crée une ArrayList dont chaque élément est un tableau d'entiers avec l'instruction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ArrayList<int[]> pixels=new ArrayList <int[]> ();
    ensuite j'ai rempli mon arraylist avec 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
      for(int i=x-12;i<=x+12;i++)// remplir la liste des pixels
    			     {
    			    	 for(int j=y-12;j<=y+12;j++)
    			    	 {
    			    		 if(i>=0&&i<seg.getWidth() &&j>=0 && j<seg.getHeight() && rgb2gray(numpass.getRGB(i, j))!=0)
    			    			 seg.setRGB(i,j ,couleur.getRGB());
     
    			    		 liste_p[0]=i;
    			    		 liste_p[1]=j; 
    			    		 liste_p[2]=k;
    			    		 pixels.add(liste_p);
     
     
    			    	 }
    			     }
    j'ai vérifié ce code et il marche bien.
    Ensuite, j'ai affiché le contenu de mon ArrayList (les entiers du tableau de chaque élément de la liste) avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Iterator<int[]> it=pixels.iterator();
    			     System.out.println("Arraylist");
    			     while(it.hasNext())
    			    	 {
    			    	   int[]p=it.next();
    			    	   System.out.print(p[0]+" " +p[1]+" ");
    			    	 }

    Le problème est que tous les éléments de la liste affichés sont identiques et sont tous égaux au dernier élément entré à la liste.
    Je ne cmprend pas ce résultat. y a-t- il quelqu'un qui peut m'aider?
    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 152
    Points : 209
    Points
    209
    Par défaut
    Salut

    je te conseille de décomposer ton code en créant une classe pixel comme ceci (en utilisant le nom de variable approprié) :
    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
    18
     
    public class Pixel
    {
        private int i, j, k;
     
        public Pixel(int i, int j, in k)
        {
            this.i = i;
            this.j = j;
            this.k = k;
        }
     
        @Override
        public void toString()
        {
            return (i + " " + j + " " + k);
        }
    }
    puis tu remplaces ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    liste_p[0]=i;
    liste_p[1]=j; 
    liste_p[2]=k;
    pixels.add(liste_p);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pixels.add(new Pixel(i, j, k));
    et pour afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(Pixel p : pixels)
    {
        System.out.println(p);
    }
    Et voila!
    @Ikey

    Edit : J'ai oublié de préciser que ton code ne marche pas parce que tu insères toujours la même référence de ton tableau (liste_p) dans l'ArrayList, c'est donc normal que tu es toujours la même valeur à l'intérieur.
    La solution aurait était de créer un nouveau tableau à chaque fois mais ce n'est pas une jolie solution au niveau programmation

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Points : 41
    Points
    41
    Par défaut
    oui c'est vrai, merci c'est très gentil et à bientôt

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

Discussions similaires

  1. Problème avec ArrayList
    Par yarf dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 03/07/2007, 10h50
  2. problème avec ArrayList et JVM
    Par ulysse031 dans le forum Collection et Stream
    Réponses: 29
    Dernier message: 26/04/2007, 20h47
  3. problème avec arraylist
    Par ulysse031 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 27/02/2007, 12h00
  4. [débutant] problème avec arraylist
    Par sissi25 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/12/2006, 16h01
  5. Problème avec ArrayList <String>
    Par fiphi dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 29/08/2006, 09h30

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