2016-10-17 3 views
0

Мне нужна помощь, я сам изучаю, как работать с картами на Java, и сегодня я пытался получить вычитание значений из Hashmap с помощью ключа, но теперь я застрял ,Java вычитает значения в HashMaps по ключу

Это значения карты, которые я хочу вычесть (арифметическое вычитание между значениями с помощью клавиш).

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

В ниже я хочу, чтобы вычесть ключом, как

(key1) - (key2) = 5 
+3

Если вы хотите выполнять арифметические действия на значения, почему вы хранить их в виде строк? –

+0

ok Я исправлю это – Achin

+1

Вы должны использовать 'Map '. Тогда проблема исчезнет. – EJP

ответ

4

Вы должны будете разобрать эти строки в Integer первый. Это связано с тем, что вы сохраняете значения как String, на которых не выполняются арифметические операции.

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

Альтернатива Вы можете хранить значения как целые числа, подобные этому.

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

и выполнить ниже

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

@ Хенри, я понял, что :) Отсюда и исправление. –

0

Вам нужно будет разобрать первую строку в целое число, а затем вычитать его.

Это идет как: -

int result = Integer.parseInt(map.get(1)) - Integer.parseInt(map.get(2)) 
Смежные вопросы