2012-02-29 2 views
1

Я работаю над программой для класса. Использование TreeMap для хранения идентификаторов (String - Key) и сумм дохода (double value). Я импортирую значения из текстового файла с помощью сканера. Моя проблема в настоящий момент заключается в том, что мне нужно, чтобы значения накапливались, а не перезаписывались с последней прочитанной величиной. Итак, мой вопрос заключается в том, как вы используете карту для выполнения таких расчетов? Любая помощь будет оценена по достоинству.Как я могу использовать карту для расчетов?

ответ

1

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

// Assuming that key and value were read from your file, and that 
// myMap is declared as "Map<String, Double>" 
if (myMap.containsKey (key)) { 
    double oldValue = myMap.get (key); 
    value += oldValue; 
} 

myMap.put (key, value); 
+0

Позвольте ему приложить хоть какое-то усилие хотя бы! это его домашняя работа. – Kashyap

+0

@thekashyap, если вам будет лучше, этот код не работает для меня так, как есть. Вторая строка дает несовместимую ошибку типа, потому что переменная является двойной, но ключ представляет собой строку ... Я действительно хочу, чтобы спецификации документов были легче читать. –

+0

@StevetheMaker Как вы заявили о своей «карте»? – Laf

1

1) Проверьте, существует ли значение с тем же ключом на карте 2) Если он существует, то читать его и добавить чтения текущего значения. Верните его обратно на карту

3

В Map нет неявной функциональности. Идея за вашим домашним заданием - научиться вставлять, находить, получать и заменять на/из Map. Для каждого из них есть функции, и вы должны использовать все, чтобы это сделать.

Смежные вопросы