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 :

[ArrayList] removeAll d'objets egaux


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut [ArrayList] removeAll d'objets egaux
    Bonjour,

    je viens de chercher sur le forum il semble que mon problème est déjà été discuté sauf qu'aucun des topics ne proposaient de solution (enfin ceux que j'ai trouvé)

    J'ai donc 2 ArrayList d'objets GenePoint créés par mes soins . Je voudrais enlever de l'une ceux contenus dans l'autre. Il est très possible que c'est objet ne soit pas les mêmes mais juste de objets egaux.

    J'ai donc fait de mes GenePoint des objets comparable mais la méthode ArrayList.removeAll ne semble pas passer par un .equals (pas de passage par la methode compareTo)

    Faut il s'y prendre autrement ou y a t'il plus probablement une erreur dans mon code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ArrayList rest = new ArrayList();
    				rest.addAll(_baparent.getGeneList());
     
    				for (int i = 0 ; i < _alignArea.size(); i++)
    				{
    		rest.removeAll(((BestAlignementArea)_alignArea.get(i)).getSelectionGene());		
    				}
    dans la classe GenePoint :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public int compareTo(Object o) {
    		System.out.println("?");
    		if (o.getClass().equals(GenePoint.class) && ((GenePoint)o).getName().equals(_name))
    		{
    			System.out.println("????????");
    		return 0;
    		}
    		else return -1;
    	}

  2. #2
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Es-tu sur qu'il rentre à l'intérieur de ta boucle for?

  3. #3
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par billynirvana Voir le message
    Es-tu sur qu'il rentre à l'intérieur de ta boucle for?

    hum oui (j'ai deja du verifier (je suis plu sure car j'avais commencer avans le WE)) je vais reverifier.

    Mias de toute facons je viens de faire un equals entre deux objet GenePoint et je ne passe pas par le compareTo ... j'ai un problème lol

  4. #4
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    La méthode equals n'appelle pas compareTo.
    La méthode compareTo est appelée lors d'un tri. par exemple Collections.sort(list).


    Tu dois overrider la méthode equals(Object o).

  5. #5
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par billynirvana Voir le message
    La méthode equals n'appelle pas compareTo.
    La méthode compareTo est appelée lors d'un tri. par exemple Collections.sort(list).


    Tu dois overrider la méthode equals(Object o).
    lol ^^ merci ! je sais pas d'où me venais cette idée ... c'est bizard

  6. #6
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Ok .... je suis partie sur une mauvaise idée .... equals n'utilise pas compareTo (ce que je croyais) .. il fallais donc égalemment réimplémenter equals() !

    Maintenant je le sait ^^

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

Discussions similaires

  1. [Problèmes avec ArrayList] Supprimer des objets égaux à null
    Par smutmutant2003 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 08/10/2009, 10h43
  2. ArrayList de 500 objets : ça rame
    Par baltam dans le forum 2D
    Réponses: 25
    Dernier message: 20/09/2009, 03h19
  3. Serialisation/deserialisation d'un arrayList retourne des objets vides
    Par cdtkoenig dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 18/07/2007, 15h45
  4. Réponses: 1
    Dernier message: 18/01/2006, 18h39
  5. [ArrayList]transformer l'objet récupéré en double...
    Par snoop dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 16/07/2004, 16h16

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