Второй день ломаю голову, почему данный код не правильно суммирует данные из values? (Строка 41-53)
package com.javarush.task.task19.task1920;

/*
Самый богатый
В метод main первым параметром приходит имя файла.
В этом файле каждая строка имеет следующий вид:
имя значение
где [имя] — String, [значение] — double. [имя] и [значение] разделены пробелом.

Для каждого имени посчитать сумму всех его значений.
Вывести в консоль имена в алфавитном порядке, у которых максимальная сумма.
Имена разделять пробелом либо выводить с новой строки.
Закрыть потоки.
*/

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;

public class Solution {
    public static void main(String[] args) throws IOException {
        //String fileName = args[0];
        String fileName = "/Volumes/Umberella/Test.txt";
        BufferedReader fileReader = new BufferedReader(new FileReader(fileName));

        ArrayList<String> names = new ArrayList<String>();
        ArrayList<Double> values = new ArrayList<Double>();

        Map<String, Double> map = new HashMap<String, Double>();

        String strRd;
        String[] strBuff;
        while ((strRd = fileReader.readLine()) != null){
            strBuff = strRd.split(" ");
            names.add(strBuff[0]);
            values.add(Double.parseDouble(strBuff[1]));
        }
        fileReader.close();

        double valueCount = 0;
        for (int i = 0; i < names.size(); i++){

            String checkName = names.get(i);
            valueCount = values.get(i);

            for (int o = 1; o < names.size(); o++){
                if (checkName.equals(names.get(o))) {
                    valueCount = valueCount + values.get(o);
                    names.remove(o);
                    values.remove(o);
                }
            }

            map.put(checkName, valueCount);
        }

        Iterator<Map.Entry<String, Double>> iterator = map.entrySet().iterator();

        while (iterator.hasNext()){
            Map.Entry<String, Double> pair = iterator.next();
            String key = pair.getKey();
            Double val = pair.getValue();

            System.out.println("Key: " + key + ", Value: " + val);
        }


    }
}
Содержимое файла:
Петров 0.501
Иванов 1.35
Петров 0.85
Иванов 1.0
Вася 1.0
Вася 1.76
Результат выдачи:
Key: Вася, Value: 2.0
Key: Иванов, Value: 2.7
Key: Петров, Value: 1.351