Программа суммирует все цифры напротив фамилий соответственно, сортирует, но валидатор начинает путать своими подсказками, сначала нужно найти одну фамилию с макс цифрой, нахожу, и тут ему нужно найти несколько отсортированных ...
package com.javarush.task.task19.task1920;
/*
Самый богатый
*/
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class Solution {
public static void main(String[] args) {
List<String> keys = new ArrayList<>();
List<Double> values = new ArrayList<>();
List<Double> sortedValues = new ArrayList<>();
List<String> sortedNames = new ArrayList<>();
TreeMap<String, Double> treeMap = new TreeMap<>();
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(args[0]));
String str;
String[] strings = null;
while (bufferedReader.ready()){
str = bufferedReader.readLine();
strings = str.split("\\s");
keys.add(strings[0]);
values.add(Double.parseDouble(strings[1]));
}
bufferedReader.close();
Double aDouble;
for (int i = 0; i < keys.size(); i++) {
aDouble = values.get(i);
for (int j = 0; j < keys.size(); j++) {
if (i == j) continue;
if (keys.get(i).equals(keys.get(j))){
aDouble += values.get(j);
}
}
treeMap.put(keys.get(i), aDouble);
sortedValues.add(aDouble);
}
Collections.sort(sortedValues);
Collections.reverse(sortedValues);
// for (int i = 0; i < sortedValues.size(); i++) {
////// System.out.println(keys.get(i) + " " + sortedValues.get(i));
//// System.out.println("Величина: " + sortedValues.get(i));
//// }
////
//// System.out.println("");
for (int i = 0; i < sortedValues.size()-1; i++) {
for (Map.Entry item : treeMap.entrySet()
) {
if (item.getValue() == sortedValues.get(i)) {
sortedNames.add(item.getKey().toString());
// System.out.println(item.getKey() + " " + item.getValue());
break;
}
}
}
sortedNames.remove(sortedNames.size() - 1);
System.out.println(sortedNames.get(0));
// System.out.println(" ");
Collections.sort(sortedNames);
//
// for (String item : sortedNames
// ) {
// System.out.println(item);
// }
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}