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
Version imprimable
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
Va voir du côté des Set
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 ???
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
Je l'ai testé ca fonctionneCode:
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); } }
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
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 :
Ainsi 1000 Integer sont créés, mais un seul est utile et les 999 autres sont en direction du dépotoir. :aie:Code:
1
2
3 for (int i = 0, i<1000; i++) occurenceSet.add("a");
Une petite modification pour règler ce problème. Créer un MutableInteger.
Voici que ca donne dans la version Java 1.4
Code:
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(); } }