Добрый вечер
Подскажите, пожалуйста, что я не так делаю? Откуда у меня берется этот Петров второй раз? Почему он не складывается суммой, как остальные?
ВВОД:
Петров 0.501
Федоров 0
Иванов 1.35
Петров 0.85
Петренко 0.85
Петренко 0.501
Анисимов 24
Федоров 0.4
Анисимов 0.5
ВЫВОД (если вывести ВСЕ(!) строчки):
Анисимов 24.5
Иванов 1.35
Петренко 1.351
Петров 0.85
Федоров 0.4
Петров 0.501
package com.javarush.task.task19.task1920;
/*
Самый богатый
*/
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class Solution {
public static void main(String[] args) throws IOException {
FileReader reader = new FileReader(args[0]);
String text = "";
while (reader.ready()) {
text += (char) reader.read();
}
reader.close();
String[] arr = text.replace("\r\n", " ").split(" ");
Map<String, Double> map = new TreeMap<>();
for (int i = 0; i < arr.length; i += 2) {
if (map.containsKey(arr[i])) {
map.replace(arr[i], map.get(arr[i]) + Double.parseDouble(arr[i+1]));
} else {
map.put(arr[i], Double.parseDouble(arr[i+1]));
}
}
Double max = Collections.max(map.values());
for (Map.Entry<String, Double> pair: map.entrySet()) {
if (max == pair.getValue()) {
System.out.println(pair.getKey());
}
}
/*System.out.println();
for (Map.Entry<String, Double> pair: map.entrySet()) {
System.out.println(pair.getKey() + " " + pair.getValue());
}*/
}
}