2013-07-04 10 views
1

J'utilise un ConcurrentHashmap en Java et maintenant je veux copier ce hashmap vers une autre variable qui tourne sur un serveur et donc d'abord je vais copier le hashmap entier, mais alors je veux seulement transférer le delta du Hashmap.Calculer le delta dans un ConcurrentHashmap en Java

Par exemple, j'ai 20 entrées et 2 entrées vont changer. Ensuite, je veux envoyer un message que seules les deux entrées ont été modifiées pour obtenir la même hashmap sur le serveur et réduire la surcharge.

Alors, y a-t-il une idée comment puis-je calculer ce delta? Merci.

+3

Vous pouvez utiliser 'MapDifference' de Guava pour cela. – fge

Répondre

0

Comment transférez-vous la carte au serveur?

Une solution initiale serait de cloner la carte d'origine juste avant l'envoi. Si la première fois, envoyez le clone complet. Sinon, comparez le clone actuel avec le précédent et envoyez les différences. Remplacez le clone précédent par le nouveau et faites de même dans l'itération suivante.