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

API standards et tierces Java Discussion :

lister un ensemble de String et supprimer les doublons


Sujet :

API standards et tierces Java

  1. #1
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut lister un ensemble de String et supprimer les doublons
    Bonjours...

    Je cherche un objet permettant de lister un ensemble de String et du supprimer les doublons....

    Est ce que quelqu'un connait un tel objet ??

    merci d'avance

  2. #2
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Va voir du côté des Set

  3. #3
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    merci j effectivement regarder de ce coté....

    mais je voulai aussi pouvoir faire un affichage de la sorte:


    si g une liste : {a;b;a;a;b;a;a;c;c;b;a;a;a;b;b;b;c;c}

    je voudrai que ca affiche :
    a -> 9 itérations
    b -> 6 itérations
    c -> 4 itérations


    comment savoir le nomvbre d'itération de chaque ???

  4. #4
    Membre actif Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    Salut,


    Utilise un Map<String, Integer> avec une vérification pour obtenir l'effet d'un Set.
    La valeur est le nombre d'occurence.

    ca donne quelque chose comme
    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
     
    class OccurenceSet {
    		private Map<String, Integer> map = new HashMap<String, Integer>();
     
    		public int add(String cle){
    			int occurence = 1;
    			if (map.containsKey(cle)){
    				occurence = map.get(cle);
    				occurence++;
    			map.put(cle, occurence );			
    			}
    			else
    				map.put(cle, occurence);
    			return occurence;
    		}
     
     
    		public int Occurence(String s){
    			return map.get(s) == null ? 0 : map.get(s); 
    		}		
    	}
    Je l'ai testé ca fonctionne

  5. #5
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    merci pour ta réponse jibbi....

    mais ton code marche que sur la version 1.5 et plus ...
    malheureusement je travail sur la version 1.4....
    je vais qd meme essayer d'adapter ton code ....
    je te tiens au courant merci

  6. #6
    Membre actif Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    Pour la version 1.4 faut éliminer les generics et l'autoboxing.

    D'ailleurs, côté performance c'est pas terrible. À chaque appel à OccurenceSet.add() un instance d'Integer est créé (avec ou sans autoboxing).
    exemple, en faisant ce test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (int i = 0, i<1000; i++)
    occurenceSet.add("a");
    Ainsi 1000 Integer sont créés, mais un seul est utile et les 999 autres sont en direction du dépotoir.

    Une petite modification pour règler ce problème. Créer un MutableInteger.
    Voici que ca donne dans la version Java 1.4

    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
     
    class OccurenceSet {
     
    			private class MutableInteger{
    				public int value = 1;
    			}
     
    			private Map map = new HashMap();
     
     
    					public int add(String cle){			
    						if (map.containsKey(cle)){
    							MutableInteger mi = (MutableInteger)map.get(cle);
    							mi.value++;
    							return mi.value;
    						}
    						else{
    							MutableInteger mi = new MutableInteger();
    							map.put(cle, mi);
    							return mi.value;
    						}
    					}
     
     
    					public int occurences(String s){
    						return map.get(s) == null ? 0 : ((MutableInteger)map.get(s)).value; 
    					}
     
    					public int size(){
    						return map.size();
    					}
    				}

Discussions similaires

  1. Comment supprimer les doublons
    Par djelloulc dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/09/2013, 14h30
  2. [List<String>] Supprimer les doublons
    Par Ticoche dans le forum Windows Forms
    Réponses: 9
    Dernier message: 11/06/2008, 14h10
  3. [C#][NET1.1]Supprimer les doublons d'une string[]
    Par Cervantes dans le forum C#
    Réponses: 2
    Dernier message: 19/04/2007, 11h08
  4. [ListView]Supprimer les doublons
    Par mohamed dans le forum Composants VCL
    Réponses: 1
    Dernier message: 27/10/2005, 12h14
  5. [String] Comment supprimer les accents
    Par iuz dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/03/2004, 02h58

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