W pierwszej pętli dodaję pary klucz wartość .
W drugiej pętli dodaje wartości wszystkich kluczy do ArrayListy.
Sortuję ArrayListę (ostatnia wartość w ArrayList wskazuje największą wartość klucza/kluczy)
W trzeciej ostatniej pętli sprawdzam który klucz/klucze pasują do największej wartości i wypisuje w jednej linii ze spacją.
Co jest nie tak?
package pl.codegym.task.task19.task1920;
import java.io.*;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class Solution {
public static void main(String[] args) throws Exception {
FileReader file = new FileReader(args[0]);
BufferedReader reader = new BufferedReader(file);
Map<String, Double> mapa = new HashMap<>();
while (reader.ready()) {
String linia = reader.readLine();
String [] tablica = linia.split(" ");
if (mapa.isEmpty()) {
mapa.put(tablica[0], Double.parseDouble(tablica[1]));
}
else if (mapa.get(tablica[0]) == null) {
mapa.put(tablica[0], Double.parseDouble(tablica[1]));
}
else if (mapa.get(tablica[0]) != null) {
mapa.put(tablica[0], mapa.get(tablica[0] + Double.parseDouble(tablica[1])));
}
}
file.close();
reader.close();
List<Double> lista = new ArrayList<>();
for (Map.Entry<String, Double> para : mapa.entrySet()) {
Double wartosc = para.getValue();
lista.add(wartosc);
}
Collections.sort(lista);
for (Map.Entry<String, Double> para : mapa.entrySet()) {
String klucz = para.getKey();
Double wartosc = para.getValue();
if (wartosc == lista.get(lista.size() - 1)) {
System.out.print(klucz + " ");
}
}
}
}