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 :

[TreeMap] Connaitre les doublons


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 258
    Par défaut [TreeMap] Connaitre les doublons
    Bonjour,

    J'ai un treemap qui contient donc de clés associés à des valeurs.
    Je souhaiterais supprimer de mon treemap les valeurs qui sont en doublons,
    et enregistrer ces valeurs dans un autre tableau.

    Comment puis je faire cela simplement?

    Merci d'avance,

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 151
    Par défaut
    Citation Envoyé par kenny49
    Bonjour,

    J'ai un treemap qui contient donc de clés associés à des valeurs.
    Je souhaiterais supprimer de mon treemap les valeurs qui sont en doublons,
    et enregistrer ces valeurs dans un autre tableau.

    Comment puis je faire cela simplement?

    Merci d'avance,
    Salut,

    Tu pourrais utiliser java.util.Collections et obtenir l'occurence(méthode frequency) de tes objets values.
    Non ?

  3. #3
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    Bonjour,

    J'aurai quelques questions pour éclairer ta demande....
    Je souhaiterais supprimer de mon treemap les valeurs qui sont en doublons
    Tu les définies comment : par les clefs (clef.equals(clef)) ou par les valeurs (valeur.equals(treemap.get(clef)) ?

  4. #4
    Membre confirmé Avatar de java_fun
    Inscrit en
    Novembre 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 117
    Par défaut

    si je considére que le doublons est au niveau des clefs voici un simple code pour résoudre le problème

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    package com.test;
     
     
    import java.util.Iterator;
    import java.util.Set;
    import java.util.TreeMap;
     
     
     
    public class Test {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
     
           try {
     
    		TreeMap map = new TreeMap();
    		TreeMap map_cle_unique = new TreeMap();
    		map.put("0", "zero");
    		map.put("1", "un");
    		map.put("0", "zero");
    		map.put("1", "un");
    		map.put("2", "deux");
    		// on récupére les clefs uniques 
    		Set cle_unique = map.keySet();
    		Iterator i = cle_unique.iterator();
    		while(i.hasNext()){
    			String cle=(String)i.next();
            // on récupére la valeur de chaque clef
    			String valeur = (String)map.get(cle);
    			map_cle_unique.put(cle, valeur);
     
    		}
    		System.out.println("valeurs map_cle_unique : "+map_cle_unique.values().toString());
     
    	    } catch (Exception e) {
    		// TODO Auto-generated catch block
    		System.out.println("Exception :"+e.toString());
    	   }  
    	}
     
    }

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par java_fun Voir le message

    si je considére que le doublons est au niveau des clefs voici un simple code pour résoudre le problème
    Le principe d'une Map (table de hachage) est justement d'avoir des clés uniques, je ne vois pas trop comment tu pourrais avoir des doublons sur les clés .
    Ton code ne fait que copier le contenu d'une TreeMap dans une autre sans rien changer .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Voici un code qui copie le contenu d'une TreeMap dans une seconde en levant les doublons qui sont ajoutés dans une List.
    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
    TreeMap<String, String> treeMap  = new TreeMap<String, String>();
     
    ... // traitement remplissant treeMap
     
    TreeMap<String, String> otherTreeMap  = new TreeMap<String, String>();
    List<String> doublons = new ArrayList<String>()
    Set<String> keys = treeMap.keySet();
    for(String key : keys) {
        String value = treeMap.get(key);
        if(otherTreeMap.containsValue(value) {
            doublons.add(value);
        } else {
            otherTreeMap.put(key, value);
        }
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

Discussions similaires

  1. Connaitre les doublons sur 2 colonnes
    Par afrodje dans le forum Requêtes
    Réponses: 7
    Dernier message: 17/02/2009, 09h15
  2. Connaitre les doublons d'une table
    Par sliderman dans le forum Requêtes
    Réponses: 3
    Dernier message: 24/10/2008, 18h45
  3. Connaitre les doublons dans une même table
    Par Space Cowboy dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/06/2008, 11h28
  4. [Tableaux] Connaitre les doublons d'un tableau
    Par yobogs dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2007, 11h38

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