Hello,
Someone can help me?
package fr.codegym.task.task19.task1920;
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.TreeMap;
import java.io.FileReader;
import java.io.BufferedReader;
/*
Le plus riche
*/
public class Solution {
public static void main(String[] args) throws java.io.FileNotFoundException, java.io.IOException {
FileReader fileReader = new FileReader(args[0]);
Map<String, Double> listeVlues = new HashMap<>();
String currentLine = null;
String [] arrayCurrentLine = null;
BufferedReader buff = new BufferedReader(fileReader);
String nom = null;
double valeur = 0.0;
while ((currentLine = buff.readLine())!= null) {
arrayCurrentLine = currentLine.split(" ");
nom = arrayCurrentLine[0];
valeur = Double.parseDouble(arrayCurrentLine[1]);
// test if exist
if (listeVlues.containsKey(nom)) {
listeVlues.put(nom,listeVlues.get(nom)+valeur);
} else {
listeVlues.put(nom,valeur);
}
}
// trie
LinkedHashMap<String, Double> reverseListe = new LinkedHashMap<>();
listeVlues.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.forEachOrdered(entry -> reverseListe.put(entry.getKey(), entry.getValue()));
// display trie
Set set = reverseListe.entrySet();
Iterator it = set.iterator();
while(it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
System.out.println(entry.getKey()+ " "+ entry.getValue());
}
/*
Map<String, Double> listeVluesTried = new TreeMap<String, Double>(listeVlues);
Set set = listeVluesTried.entrySet();
Iterator it = set.iterator();
Map.Entry<String, Double> entryMax = null;
while(it.hasNext()) {
Map.Entry<String, Double> entry = (Map.Entry) it.next();
if(entryMax == null || entry.getValue() > entryMax.getValue()) {
entryMax = entry;
}
}
System.out.println(entryMax.getKey()+ " "+ entryMax.getValue());
*/
buff.close();
}
}