Vector en java
Résolu
amal-these
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
amal-these Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
amal-these Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai deux variables :
1. Vector <Vector<double[]>> E = new Vector <Vector<double[]>>();
2. Vector <double[]> B = new Vector <double[]>();
pour remplir le premier (E) je remplis le deuxième (B) pour utiliser cette instruction : E.add(B);
j'utilise B car je peux pas remplir E directement.
Mon problème est le suivant : lorsque je vide B ou je lui affecte autre valeurs, automatiquement E connait les mm changement.
je vous remercie infiniment d'avance.
J'ai deux variables :
1. Vector <Vector<double[]>> E = new Vector <Vector<double[]>>();
2. Vector <double[]> B = new Vector <double[]>();
pour remplir le premier (E) je remplis le deuxième (B) pour utiliser cette instruction : E.add(B);
j'utilise B car je peux pas remplir E directement.
Mon problème est le suivant : lorsque je vide B ou je lui affecte autre valeurs, automatiquement E connait les mm changement.
je vous remercie infiniment d'avance.
A voir également:
- Vector en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
B est une référence, l'objet que tu mets dans E est une référence, mais l'objet qu'il y a derrière ces deux références c'est le même, donc la modification de l'objet impacte forcément les deux références.
Il faut donc créer des objets distincts pour éviter les effets de bords.
Remarques :
Suite à votre réponse j'ai deux questions si vous me permettez :
1. Qu'elle est la cause de ce problème?
2. Si je veux conserver le B je peux pas le ré instancier ?
Merci
S'il vous plait je veux savoir comment je peux initialiser le E de type : Vector<Vector<Double>>, si je passe pas par B et le tableau?
Merci
Même si je te conseilles plutôt d'avoir une List<List<List<Double>>> et de remplacer les Vector par des ArrayList.
Pour bien t'aider est-ce que tu pourrais nous donner un peu plus de code, pour voir comment tu fais actuellement pour remplir ton tableau E avec B ?
alors mes données sont stockées dans une matrice A car je lis à partir d'un fichier:
double[][] A= {{1,2,0.3,0.1},
{3,4,1,0.7},
{5,6,0.1,0.2},
{1.5,2.3,0.3,0.1},
{0.5,0.3,0.3,0.1},
{0.5,0.6,0.1,0.2},
{5.1,6,0.2,0.2},
{0.9,0.4,0.7,0.2},
{2.4,3.5,1,0.7},
{3.1,4,1.2,1.8},
{3.1,4,1.2,1.7},
{3.1,4,1.2,1.9},
{3.1,4,1.2,0.8},
{3.2,4.1,1.2,0.8},
{3,5,1.2,0.8}
};
chaque ligne de A représente une donnée.
Je travaille sur la classification alors j'ai codé la partition par une variable E de type Vector <Vector<double[]>> : double[] contient une donnée de A c'est pour cela que j'ai travaillé avec un tableau. Vector<double[]> représente une classe qui est un ensemble de données de A. et Vector <Vector<double[]>> c'est un ensemble de classe.
Alors j'ai pensé comme ça pour programmé une partition qui prend les données d'une matrice.
Si vous voyez autre façon pour les types, merci de me les décrire.
Construction de E :
puisque E.elementAt(0) n'existe pas encore mm si j'ai instancié E, je déclare B de type : Vector<double[]> je la remplie par B.add(A[i]) et puis E.add(B).
j'espère que j'ai bien expliqué. Je vous remercie beaucouuuup pour votre aide.