Pracuję nad programem na zajęcia. Używanie TreeMap do przechowywania identyfikatorów (ciąg - klucz) i kwot zarobków (podwójna wartość). Importuję wartości z pliku tekstowego za pomocą skanera. Moim problemem w tej chwili jest to, że potrzebuję akumulacji wartości, a nie nadpisywania ich ostatnią odczytaną wartością. Więc moje pytanie brzmi, jak używać Mapy do wykonywania takich obliczeń? Każda pomoc byłaby mile widziana.

1
Steve the Maker 29 luty 2012, 21:25

3 odpowiedzi

Najlepsza odpowiedź

Podczas dodawania nowej wartości do mapy, jeśli klucz już istnieje, możesz uzyskać powiązaną wartość, dodać do niej nową wartość i umieścić ją z powrotem na mapie. Przykład:

// 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);
1
Laf 29 luty 2012, 21:28

W Map nie ma niejawnej funkcjonalności. Ideą zadania domowego jest nauczenie się wstawiania, znajdowania, pobierania i zastępowania do/z Map. Istnieją funkcje dla każdego z nich i powinieneś użyć wszystkich, aby to zrobić.

3
Kashyap 29 luty 2012, 21:32

1) Sprawdź, czy wartość z tym samym kluczem istnieje na mapie 2) Jeśli istnieje, odczytaj ją i dodaj aktualnie odczytaną wartość. Umieść to z powrotem na mapie

1
JProgrammer 29 luty 2012, 21:29