Bonjour à tous,

Bon, j'y connais rien en Java, et rien en DOO. Mais j'ai un boulot à faire en Java, donc je le fais et j'essaie de le faire bien, même si ça me gonfle.

Tout ce que j'ai fait jusqu'à maintenant, je l'ai fait en lisant des docs et des bouquins, donc je n'ai eu l'aide d'aucune vraie personne professionnel ou amateur.
Mais là, mon problème est incompréhensible et je ne trouve pas de cas similaire, ou alors je ne sais pas quoi chercher...

J'ai fait une structure de données, en Java on appelle ça une classe si j'ai bien compris?
La voici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public class Resultat
{
		public String nom_flot;
		public int rang; 
		public long date_arrivee; 
}
Ensuite j'ai fait une variable normale et un vecteur avec cette classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Vector<Resultat> tab_result = new Vector<Resultat>(); 
Resultat Ligne_Courante = new Resultat();
La variable "Ligne_Courante" est surement inutile quand on s'y connait mais moi ça m'aide à y voir clair dans ce que je fais.

Ensuite, j'ai une boucle qui vient initialiser les valeurs de la variable Ligne_Courante (donc elles changent à chaque tour de boucle) et j'ajoute Ligne_Courange à une ligne de mon Vector. Ce qui m'intéresse à la fin c'est d'avoir un beau vecteur de ma classe avec toutes mes valeurs.

Code:
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
 
for (int i = 0; i < une_limite; i++)
		{
 
			Ligne_Courante.date_arrivee = <la valeur qu'il faut>
			Ligne_Courante.nom_flot = <la valeur qu'il faut>
			Ligne_Courante.rang = <la valeur qu'il faut>
                        tab_result.add(Ligne_Courante);
			System.out.println(Ligne_Courante.nom_flot+
					"\t"+Ligne_Courante.rang+
					"\t"+Ligne_Courante.date_arrivee);
 
		}
for (int i = 0; i < tab_result.size(); i++)
{
	System.out.println(tab_result.elementAt(i).nom_flot+
					"\t"+tab_result.elementAt(i).rang+
					"\t"+tab_result.elementAt(i).date_arrivee);
}
Le premier println avec Ligne_Courante affiche bien les bonnes valeurs et le deuxième qui vérifie le contenu du tableau affiche toujours les mêmes valeurs.

J'ai exécuté le code en mode "pas à pas" et en fait, les valeurs sont toujours bonnes dans Ligne_Courante, le add la met bien dans le tableau, mais quand on passe à la deuxième valeur, le add met la valeur à la suite de la précédente mais remplace aussi la précédente par cette valeur et ainsi de suite pour tout les tours de boucle. Et au final, mon tableau est initialisé avec i lignes de la valeur du dernier tour de boucle...

Franchement ça me dépasse et je ne comprends pas comment le débuger..

J'ai essayé addElement et add(i, Ligne_Courante) mais j'ai le même problème...

Est-ce que c'est un problème connu ? et comment le résoudre?
J'ai utilisé les vecteurs parce que j'avais compris facilement comment ça marchait et que je ne veux pas me prendre la tête, mais est-ce bien adapté à mon usage?

Merci d'avance si vous voulez bien m'aider

Bonne soirée!