Utiliser un hashmap dans un hashmap
Bonjour
En fait j'ai besoin d'aide. je sais pas bien utiliser les hashmap.
en fait je veux déclarer ceci
Code:
Map<Long, Map<String, Integer>> cache = new HashMap<Long, Map<String, Integer>>();
puis
Code:
map.put(id,Methode,Octet);
avec id de type long Methode de type string et Octet c la valeur entiére
Methode peut etre soit GET soit POST
je voudrais pour chaque id faire la somme de valeurs pour la methode GET et la somme de valeurs pour la somme POST
la methode est obtenue à l'aide de
Code:
String Methode = (String) reo.getProperty("Method");
la valeur est obtenue à l'aide de
Code:
int Octet = Integer.parseInt((String) reo.getProperty("taille"));
et l'id est obtenue à l'aide de
Code:
long id = reo.getEndNode().getId();
par exemple
Code:
1 2 3 4 5
| cache.put(id1, GET, 500);
cache.put(id2 , GET ,700);
cache.put(id1 GET ,400);
cache.put(id1, POST, 100);
cache.put(id2 , GET, 500); |
la resultat obtenu souhaitée est
Code:
1 2
| key id1 value {GET, 600} et {POST, 100}
key id2 value {GET , 1200} et {POST 0} |
faire la division dans une hashmap
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 33 34 35 36 37
| import java.util.HashMap;
import java.util.Map;
public class Cache
{
private Map<String,Integer> cache = new HashMap<String,Integer>();
public void add(long id, String method, int octet)
{
String key = id + "_" + method;
if (cache.containsKey(key))
cache.put(key, cache.get(key) + octet);
else
cache.put(key, octet);
}
public int getSum(long id, String method)
{
return cache.get(id + "_" + method);
}
public static void main(String[] args) {
Cache cache = new Cache();
long id1 = 123456;
long id2 = 456789;
String GET = "GET";
String POST = "POST";
cache.add(id1, GET, 400);
cache.add(id2, GET, 600);
cache.add(id1, GET, 390);
cache.add(id1, POST, 60);
cache.add(id2, POST, 23);
cache.add(id2, POST, 30);
}
} |
cela ça marche bien mais je voudrais ajouter également une fonction qui fait la division entre la somme de get et la somme de post pour un meme id. Syp aidez moi à faire ceci et MERCI