Bonjour,

J'ai un problème qui vient vraisemblablement d'un conflit de mémoire entre plusieurs variables, je butte sur ce problème depuis plus d'une semaine, j'ai demandé de l'aide a plusieurs amis meilleurs que moi en java, j'ai fait beaucoup de recherche sur google mais rien a faire...
Voici le bout de code qui ne marche pas:

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
19
20
21
22
23
24
25
 if(listeSituations.size() > 0)
		{
			System.out.print("1:  " + ((MorpionSituation) listeSituations.get(0)).getSituation() + "\n1:  ");
			displayLine(((MorpionSituation) listeSituations.get(0)).getSituation());
		}
 
		int[] temp = new int[10];
 
		if(listeSituations.size() > 0)
			temp = ((MorpionSituation) listeSituations.get(0)).getSituation();
 
		displayLine(temp);
 
                plateau[position] = joueur;
 
               displayLine(temp);
 
               if(listeSituations.size() > 0)
        	        ((MorpionSituation) listeSituations.get(0)).setSituation(temp);
 
                if(listeSituations.size() > 0)
		{
			System.out.print("2:  " + ((MorpionSituation) listeSituations.get(0)).getSituation() + "\n2:  ");
			displayLine(((MorpionSituation) listeSituations.get(0)).getSituation());
		}
La fonction displayLine sert a afficher un tableau:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public static void displayLine(int[] pla)
	{
		for(int i : pla)
			System.out.print(i);
 
		System.out.print("\n");
	}
plateau est un int[] static déclaré en dehors de la main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
       private static final int[] plateau = {0,0,0, 0,0,0, 0,0,0};
listeSituations est une ArrayList (déclarée en dehors de la main) composée d'un seul objet MorpionSituation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
	private static ArrayList<MorpionSituation> listeSituations = new ArrayList<MorpionSituation>();
//Création de l'objet MorpionSituation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
                        int[] temp = new int[9];
			temp = plateau;
			MorpionSituation sit = new MorpionSituation(temp);
			listeSituations.add(sit);
L'objet MorpionSituation contient une variable situation accessible par la fonction getSituation:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
	public MorpionSituation(int[] plat) {
		this.temp = plat;
		this.situation = this.temp;
	}
 
	public int[] getSituation() {
		return this.situation;
	}
 
	public void setSituation(int[] newSituation) {
		situation = newSituation;
	}
Et tout ce beau monde affiche ça :

1: [I@7ba4f24f
1: 000010000
000010000
000210000
2: [I@7ba4f24f
2: 000210000


Explication:
Avant de lancer le bout de code du début, plateau vaut 000010000, les 3 premieres lignes sont normales, ensuite on modifie plateau sans toucher a situation, puis on affiche situation et on voit qu'elle a changé -________-'


Please help !