public class Solution {
public static void main(String[] args) throws IOException {
ArrayList<String> lastName = new ArrayList<>();
TreeMap<String, Double> human = new TreeMap<>();
Double max = Double.MIN_VALUE;
Double current = 0.0;
Double old = 0.0;
String name = "";
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
while (reader.ready()) {
String[] data = reader.readLine().split(" ");
current = Double.parseDouble(data[1]);
if (human.containsKey(data[0])) {
old = human.get(data[0]);
human.put(data[0], old + current);
} else {
human.put(data[0], Double.parseDouble(data[1]));
}
}
for (Map.Entry<String, Double> pair : human.entrySet()) {
if (pair.getValue() >= max) {
max = pair.getValue();
name = pair.getKey();
lastName.add(name);
}
}
Collections.sort(lastName);
for (String output : lastName) {
System.out.println(output);
}
reader.close();
}
}
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.*;
// В метод main первым параметром приходит имя файла.
// В этом файле каждая строка имеет следующий вид:
// имя значение
// где [имя] - String, [значение] - double. [имя] и [значение] разделены пробелом.
//
// Для каждого имени посчитать сумму всех его значений.
// Вывести в консоль имена в алфавитном порядке, у которых максимальная сумма.
// Имена разделять пробелом либо выводить с новой строки.
// Закрыть потоки.
//
// Пример входного файла:
// Петров 0.501
// Иванов 1.35
// Петров 0.85
//
// Пример вывода:
// Петров
//
// Requirements:
// 1. Программа НЕ должна считывать данные с консоли.
// 2. Программа должна считывать содержимое файла (используй FileReader).
// 3. Поток чтения из файла (FileReader) должен быть закрыт.
// 4. Программа должна выводить в консоль имена, у которых максимальная сумма.
public class Solution {
public static void main(String[] args) throws IOException {
ArrayList<String> lastName = new ArrayList<>();
TreeMap<String, Double> human = new TreeMap<>();
Double max = Double.MIN_VALUE;
Double current = 0.0;
Double old = 0.0;
String name = "";
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
while (reader.ready()) {
String[] data = reader.readLine().split(" ");
current = Double.parseDouble(data[1]);
if (human.containsKey(data[0])){
old = human.get(data[0]);
human.put(data[0], old + current);
} else {
human.put(data[0], Double.parseDouble(data[1]));
}
}
// выведем human
for (Map.Entry<String, Double> pair : human.entrySet()) {
System.out.println(pair.getKey() + " " + pair.getValue());
}
for (Map.Entry<String, Double> pair : human.entrySet()) {
if (pair.getValue() >= max) {
max = pair.getValue();
name = pair.getKey();
lastName.add(name);
}
}
Collections.sort(lastName);
for (String output : lastName) {
System.out.println(output);
}
reader.close();
}
}