Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.task.task19.task1920;
- /*
- Самый богатый
- В метод main первым параметром приходит имя файла.
- В этом файле каждая строка имеет следующий вид:
- имя значение
- где [имя] - String, [значение] - double. [имя] и [значение] разделены пробелом.
- Для каждого имени посчитать сумму всех его значений.
- Вывести в консоль имена в алфавитном порядке, у которых максимальная сумма.
- Имена разделять пробелом либо выводить с новой строки.
- Закрыть потоки.
- Пример входного файла:
- Петров 0.501
- Иванов 1.35
- Петров 0.85
- Пример вывода:
- Петров
- Требования:
- 1. Программа НЕ должна считывать данные с консоли.
- 2. Программа должна считывать содержимое файла (используй FileReader).
- 3. Поток чтения из файла (FileReader) должен быть закрыт.
- 4. Программа должна выводить в консоль имена, у которых максимальная сумма.
- */
- import sun.applet.resources.MsgAppletViewer;
- import java.io.BufferedReader;
- import java.io.FileReader;
- import java.util.*;
- import java.util.function.Consumer;
- import java.util.stream.Collectors;
- public class Solution {
- public static void main(String[] args) throws Exception {
- FileReader fileReader = new FileReader(args[0]);
- BufferedReader bufferedReader = new BufferedReader(fileReader);
- double sum = 0;
- String str;
- Map<String,Double> map = new TreeMap<>();
- while ((str=bufferedReader.readLine())!=null){
- String [] stroka = new String[1];
- stroka = str.split(" ",2);
- String key = stroka[0];
- double vaule = Double.parseDouble(stroka[1]);
- if (map.containsKey(key)){
- sum = map.get(key)+vaule;
- }else {
- sum = vaule;
- }
- map.put(key,sum);
- }
- bufferedReader.close();
- fileReader.close();
- Set<String> set = new TreeSet<>();
- double amount = Collections.max(map.values());
- for (Map.Entry<String, Double> pair : map.entrySet())
- if (pair.getValue() >= amount) set.add(pair.getKey());
- for (String x : set) System.out.println(x);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement