Java вычитает значения в HashMaps по ключу

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

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

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

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

 (key1) - (key2) = 5

person Achin    schedule 17.10.2016    source источник
comment
Если вы хотите выполнять арифметические действия со значениями, почему вы сохраняете их как строки?   -  person Mark Peters    schedule 17.10.2016
comment
хорошо, я исправлю это   -  person Achin    schedule 17.10.2016
comment
Вы должны использовать Map<Integer, Integer>. Тогда проблема исчезнет.   -  person user207421    schedule 17.10.2016


Ответы (2)


Сначала вам нужно будет преобразовать эти строки в целое число. Это связано с тем, что вы сохраняете значения как 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)
person Prasad Kharkar    schedule 17.10.2016

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

Это похоже на: -

int result = Integer.parseInt(map.get(1)) - Integer.parseInt(map.get(2))
person Shubham Gupta    schedule 17.10.2016