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

Java Discussion :

quand j'efface un Vector, ça en efface un autre aussi, je comprend pas


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut quand j'efface un Vector, ça en efface un autre aussi, je comprend pas
    Bonjour à tous,

    je travaille sur une ihm en java swing et lorsque je fais un removeAllElements sur un Vector, j'ai remarqué que ça en efface un autre également, alors que je ne veux pas que le second soit effacé, je ne comprend pas d'où ça vient...

    si quelqu'un a une idée...

    Merci à tous
    Valérie

  2. #2
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Par défaut
    salut,

    tu aurais un peu de code à nous présenter ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    salut,

    tu aurais un peu de code à nous présenter ?
    malheureusement non car j'ai laissé mon code au travail
    pour résumer je copie le contenu d'un vecteur a dans un vecteur b

    b.addAll(a);

    puis

    a.removeAllElements();

    et là je m'aperçois que a est vide (normal) mais que b est vide aussi...

  4. #4
    Membre confirmé

    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut Sont les même objets
    Les objets qui sont dans le vecteur b sont les même de vecteur a

    et quand vous supprimez les objets de a les objets de b sont supprimés aussi car ils sont les même .

    pourquoi :
    b.addAll(a);// Ajouter les références (non les objets) à b.

    Comment faire:
    Créer des nouveaux objets de a pour ajouter à b
    Voir la notion de clonage.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    Citation Envoyé par sinpay Voir le message
    Les objets qui sont dans le vecteur b sont les même de vecteur a

    et quand vous supprimez les objets de a les objets de b sont supprimés aussi car ils sont les même .

    pourquoi :
    b.addAll(a);// Ajouter les références (non les objets) à b.

    Comment faire:
    Créer des nouveaux objets de a pour ajouter à b
    Voir la notion de clonage.
    j'avais pensé que l'erreur pouvait venir de là mais je pensais qu'en faisant addAll, ça faisait une copie des objets... selon vous je me suis trompée.

    j'essaierai dès lundi

    Merci

  6. #6
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par sinpay Voir le message

    et quand vous supprimez les objets de a les objets de b sont supprimés aussi car ils sont les même
    et alors !!!!

    il a vider le vecteur a et non pas la mémoire

  7. #7
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par sinpay Voir le message
    Les objets qui sont dans le vecteur b sont les même de vecteur a

    et quand vous supprimez les objets de a les objets de b sont supprimés aussi car ils sont les même .

    pourquoi :
    b.addAll(a);// Ajouter les références (non les objets) à b.

    Comment faire:
    Créer des nouveaux objets de a pour ajouter à b
    Voir la notion de clonage.
    Absolument pas...

    Comme l'a dit slim_java, le removeAllElements ne fait que vider la collection et non pas supprimmer les objets (ce qui d'ailleurs n'est pas possible directement en Java).

    Quand on fait un b.addAll(a), b n'a aucune référence vers a, donc si on vide/modifie la collection a, ça n'a strictement aucune incidence sur b. Ce qui est tout à fait normal comme comportement.

    Avec le code que donnes _LittleFlea_, ça devrait fonctionner, il doit y avoir autre chose qui modifie la collection dans ton code.

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    on peut voir le code dans son intégralité?

Discussions similaires

  1. [XL-2010] Effacer une ligne après copie dans un autre onglet
    Par cantegrouille dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/03/2013, 09h00
  2. [XL-2003] Effacer une cellule au changement d'une autre
    Par leloup84 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/11/2012, 14h52
  3. Réponses: 13
    Dernier message: 28/09/2010, 13h39
  4. effacer des lignes, lister les id, modifier autre chose
    Par talvins dans le forum Requêtes
    Réponses: 5
    Dernier message: 27/04/2010, 14h00
  5. Réponses: 4
    Dernier message: 30/11/2007, 08h55

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