[TreeMap] comparer et fusionner deux TreeMap
Bonjour,
J'ai deux treeMap qui contiennent chaqun comme clé un String (qui represente un nom) et un objet Float comme valeur.
Les deux treeMap possedent la meme liste de clé (les meme nom).
Je voudrais donc comparer mon premier treeMap au second et des que je tombe sur la meme clé, je veux enregistrer la somme des float associé.
J'ai commencé à ecrire le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public TreeMap userProfil = new TreeMap(); //mon premier treeMap
public TreeMap profil = new TreeMap(); //mon deuxieme treeMap
Iterator itUserProfil1 = userProfil.values().iterator(); //iterator pour mon premier treeMap
Iterator itUserProfil2 = userProfil.keySet().iterator();
Iterator itProfil1 = profil.values().iterator(); //iterator pour mon deuxieme treeMap
Iterator itProfil2 = profil.keySet().iterator();
while(itUserProfil2.hasNext()){
while(itProfil2.hasNext()){
//comparer itUserProfil2 et itProfil2
//si egale alors on additionne itUserProfil1 et itProfil1
}
}
} |
Le probleme est que je bloque deja pour comparer les clé des deux treeMap. J'ai essayer par exemple:
Code:
if(itUserProfil2.next().equals(itProfil2.next()))
Mais ca me renvoie une erreur java.util.NoSuchElementException
Je me demande egalement comment faire pour additionner ensuite mes valeur puisqu'il s'agit d'objet float, Ca s'additionne comme des variables float?
Si vous pouvez m'eclairer sur mon problème, merci d'avance.
Re: [TreeMap] comparer et fusionner deux TreeMap
tu ferais mieux d'utiliser la methode containsKey(Object)
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public TreeMap userProfil = new TreeMap();
public TreeMap profil = new TreeMap();
Iterator itUserProfil2 = userProfil.keySet().iterator();
while(itUserProfil2.hasNext()){
String key = (String) itUserProfil2.next();
if (profil.containsKey(key)) {
...
}
} |
Quant a la methode putAll(Map), tu vas perdre des donnees si tes 2 maps ont des cles identiques