2016-10-17 2 views
0

J'ai besoin d'aide, j'apprends par moi-même comment traiter les cartes en Java et aujourd'hui j'essayais d'obtenir la soustraction des valeurs d'un Hashmap via la clé, mais maintenant je suis coincé .Java soustraire des valeurs dans HashMaps par clé

Ce sont les valeurs de carte que je veux soustraire (soustraction arithmétique entre les valeurs avec les clés).

HashMap<Integer,String> map = new HashMap<Integer,String>(); 
map.put(1, "10"); 
map.put(2, "5"); 

Dans le ci-dessous je veux soustraire par clé comme

(key1) - (key2) = 5 
+3

Si vous voulez faire des opérations arithmétiques sur les valeurs, pourquoi les entreposent vous Strings? –

+0

ok je vais corriger cela – Achin

+1

Vous devriez utiliser 'Map '. Alors le problème disparaîtra. – EJP

Répondre

4

Vous devrez analyser ces chaînes en entier d'abord. C'est parce que vous stockez des valeurs comme String sur lesquelles les opérations arithmétiques ne peuvent pas être effectuées.

Integer.parseInt(map.get(1)) - Integer.parseInt(map.get(2)) 

Alternative vous pouvez stocker des valeurs comme entiers comme ceci.

HashMap<Integer,Integer> map = new HashMap<Integer,Integer>(); 
map.put(1, 10); 
map.put(2, 5); 

et d'effectuer ci-dessous

map.get(1) - map.get(2) 
+0

@Henry, j'ai réalisé que :) D'où la correction faite. –

0

Vous devez d'abord analyser la chaîne en entier et soustrayez ensuite.

Il va comme: -

int result = Integer.parseInt(map.get(1)) - Integer.parseInt(map.get(2))