Java et HashMap - comment ajouter des valeurs existantes?
Je suis actuellement en train de travailler sur une application client/serveur, et je suis en utilisant une table de hachage pour identifier chaque client. Le client passe en deux valeurs pour le serveur - id
et x
. Je suis à l'aide de id
que ma clé, et pour chaque élément dans la table de hachage, je voudrais utiliser la valeur de x
à ajouter à la valeur de l'élément spécifique avec la clé correspondante id
.
J'ai le code suivant:
HashMap<Integer, Integer> clients = new HashMap<Integer, Integer>();
int x;
sock = serv.accept();
in = new ObjectInputStream(sock.getInputStream());
in2 = sock.getInputStream();
out = new ObjectOutputStream(sock.getOutputStream());
int id = in2.read();
System.out.println("id = " + id);
Object o = in.readObject();
System.out.println("Server received " + o);
if (o instanceof Integer) {
x = ((Integer) o).intValue();
clients.put(id, 0 + x); //doesn't work, I need to be able to add to the existing value instead of overwriting the value
} else if (o instanceof String) {
clients.put(id, 0);
}
out.writeObject(clients.get(id));
out.flush();
Quelqu'un pourrait-il m'aider?
- par ajouter vous dire plus en mathématiques contexte ou vous souhaitez ajouter un plus de valeur mappée avec cette clé
- Je veux dire que dans les mathématiques contexte. Par exemple, si le client passe 1 et 3, la première fois, le serveur doit renvoyer 3. Si le client passe 1 et 5 de la deuxième fois, le serveur doit renvoyer 8. Toutefois, si le client passe 2 et 7, le serveur doit renvoyer 7, depuis le 2 est un id différent de 1.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour lire la valeur de la carte, alors vous pouvez ajouter quelque chose comme
Vous pouvez faire quelque chose comme ceci:
La meilleure façon de le faire est probablement de créer une extension de la table de hachage spécifiquement pour les entiers avec une méthode spécifiquement pour l'ajout d'une valeur particulière dans la manière que vous avez spécifié, comme ceci:
Ainsi, il sera facile à utiliser de nouveau le code si besoin, par les regards de lui, il pourrait très bien être, et a l'avantage de travailler avec une table de hachage de type approprié.
HashMap#put
.put()
, et j'ai penséput()
pourrait encore être nécessaire.Dans Java 8 ou ci-dessus, vous pouvez utiliser de Fusion.