2015-02-15 1 views
-2

У меня есть Список, который имеет следующие значения.
значение: Ключ
1000: 3 300000: 3 300000: 35
300000: 36
300000: 37
20000: 38
2000: 3 Теперь я хочу, чтобы добавить значения, имеет аналогичный ключ. В приведенном выше примере это будет be, ключ 34 встречается несколько раз, я хочу добавить значения с похожими ключами. Перечень будет
1000 + 30000 + 2000 = 303000
Окончательный список
303000 = 3 300000: 35
300000: 36
300000: 37
20000: 38
Спасибо.Сортируйте HashMap, используя его, чтобы добавить его соответствующее значение.

+4

это невозможно иметь записи с тем же ключом в HashMap –

+0

я никогда не кончался, имеющих тот же ключ в HashMap. – SMA

+0

Код определенно понадобится, поскольку другие сказали, что весь смысл HashMap заключается в том, что у вас есть особый экземпляр любого заданного ключа. – Michael

ответ

0

Карта не может иметь одинаковые ключи дважды. Но если вы хотите заполнить карту, как вы описали, вы хотите проверить, есть ли ключ на карте, если вы просто не ставите это значение, и если вы добавляете текущее и новое значение и ставите просуммировать в карту

Что-то вроде этого:

int key = (...); 
int value = (...); 

map.put(key, map.get(key) == null ? value : map.get(key) + value); 
+0

нормально, попробуйте! Благодарю . –

+0

Рассмотрите: 'map.put (key, value + (map.containsKey (key)? Map.get (key): 0));'. 'containsKey()' более безопасен, чем сравнение get() с нулевым значением, и этот код упоминает «значение» только один раз. – Bohemian

+0

Спасибо, что это сработало для меня ... я проверил доступный ключ, используя containsKey(), а затем добавил значение .. !! –