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 :

[Vector] Ajouter un Vector dans un autre Vector


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier Avatar de VinceFromBcn
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 122
    Points
    122
    Par défaut [Vector] Ajouter un Vector dans un autre Vector
    Salut,

    Dans un premier temps, je rempli mon premier vecteur avec les valeurs obtenues via le StringTokenizer (Ceci fonctionne parfaitement). Le probleme survient au moment d´ajouter ce vecteur dans un autre! Le vecteur est completement vide, je ne comprends pas j´ai pourtant l´impression que mon code est bon :

    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
     
          Vector vect = new Vector();
          Vector vector = new Vector();
          System.out.println("[MyJSPAction] Aoi = " + AoI);
          StringTokenizer st = new StringTokenizer(AoI, ";", false);
     
          int i = 1;
          while(st.hasMoreTokens())
          {      
              vect.addElement(st.nextToken());
     
              if(i == 2){
     
                vector.addElement(vect);
                System.out.println("vect[0] = " + vect.elementAt(0));
                System.out.println("vect[1] = " + vect.elementAt(1));
                vect.clear();
                System.out.println("vector = " + vector);
                i = 0;
              }
              i++;
          }
     
          System.out.println("vector size = " + vector.size());
    et la sortie me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    [MyJSPAction] Aoi = -127.31707317073169;46.09756097560975;91.31707317073173;46.09756097560975;-127.31707317073169;-49.609756097560
    975;91.31707317073173;-49.609756097560975
    vect = [-127.31707317073169, 46.09756097560975]
    vector = [[]]
    vect = [91.31707317073173, 46.09756097560975]
    vector = [[], []]
    vect = [-127.31707317073169, -49.609756097560975]
    vector = [[], [], []]
    vect = [91.31707317073173, -49.609756097560975]
    vector = [[], [], [], []]
    vector size final = 4

    Merci de votre aide!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 29
    Points : 34
    Points
    34
    Par défaut
    Ben c normal addElement(Vector)=>addElement(Object) ajoute l'element Vector dans ton tableau. donc tu as une liste d'un seul element Vector.
    C'est different de add(Vector)=>add(Collection) qui va remplir ton second vector avec le contenu du premier.

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut Re: [Vector] Ajouter un Vector dans un autre Vector
    Salut,

    En Java les objet sont géré par référence...
    Lorsque tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    vector.addElement(vect);
    vect.clear();
    Tu ajoute un Vector dans un autre Vector mais tu supprime son contenu juste après...
    Ton second Vector ne comprendra qu'un seul élément (un Vector vide à cause du clear()...)

    Si comme je le pense tu veux ajouter dans des Vector de 2 elements à chaque fois il faut faire :

    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
    26
     
     
    	// La list qui servira de conteneur globale
    	List conteneur = new ArrayList ();
    	// La variable qui contiendra les liste de 2 elements
    	List contenu   = new ArrayList ();
     
    	System.out.println("[MyJSPAction] Aoi = " + AoI);
    	StringTokenizer st = new StringTokenizer(AoI, ";", false);
     
     
    	while ( st.hasMoreTokens() ) {
     
    		contenu.add ( st.nextToken() );
     
    		// Si la list possede 2 element, on l'ajoute au conteneur
    		// et on cree une nouvelle liste pour le contenu
    		if ( contenu.size() >= 2 ) {
    			conteneur.add ( contenu );
    			contenu = new ArrayList ();
    		}
    	}
    	// On verifie la taille du dernier elements pour l'ajouter
    	//si il n'est pas vide
    	if ( contenu.isEmpty() == false )
    		conteneur.add ( contenu );
    PS: addElement() est equivalent à add() mais ne correspond pas à l'interface List.
    Cette méthode n'existe que pour être compatible avecde vieux JDK.
    Si tu n'utilise pas de vieux JDK utilise plutot List et ArrayList que Vector...

    a++

  4. #4
    Membre régulier Avatar de VinceFromBcn
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    salut,

    j'essayerai de changer mon code au niveau du clear car c'est vrai que je j'utilise toujours le meme reference!

    Merci pour votre aide!

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

Discussions similaires

  1. Copie d'un vector dans un autre vector
    Par LinuxUser dans le forum C++
    Réponses: 14
    Dernier message: 06/02/2013, 15h37
  2. Creation d'un formulaire permettant d'ajouter des information dans une autre fenêtre
    Par @rno0059 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/06/2007, 07h47
  3. Récupérer un Vector d'une classe dans une autre
    Par javamax dans le forum Langage
    Réponses: 2
    Dernier message: 22/10/2006, 13h29
  4. [ Swing ] Ajout de Container dans un autre Container
    Par Invité dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 16/02/2006, 15h57
  5. Ajouter un champ dans une autre base Access
    Par scaalp dans le forum Access
    Réponses: 2
    Dernier message: 20/10/2005, 15h34

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