J'ai une en constante mise à jour mutable.HashMap[String, String]
avec un enregistrement des emplacements des utilisateurs actuels:carte Scala cooccurrence compte
{user1 -> location1,
user2 -> location4,
user3 -> location4}
Je veux garder une trace de l'emplacement cooccurrences entre les utilisateurs - qui est, combien fois chaque paire d'utilisateurs a été au même endroit. Le format que j'ai à l'esprit est un mutable.HashMap[(String, String), Int]
:
{(user1, user2) -> 0,
(user1, user3) -> 0,
(user2, user3) -> 1}
Chaque fois que les mises à jour de carte de localisation des utilisateurs, je veux revoir quels sont les utilisateurs et ajouter 1 à leur compte courant de cooccurrences.
Le code ci-dessous renvoie une carte de {location -> Array (users)}, ce qui semble être une bonne première étape.
var users_by_location = user_locations.groupBy(_._2).mapValues{s => s.map{ case(user, location) => user}}
> {location1 -> Array(user1), location4 -> Array(user2, user3)}
J'utilise scala 2.11.8.