У меня есть CSV-файл с некоторыми данными о несчастных случаях (например, серьезность несчастных случаев, количество жертв и т. д.), и у меня есть функция, которая считывает эти данные и преобразует их в список объектов Accident (который имеет свойство для каждого типа данных в CSV):
Код: Выделить всё
public class Accident {
private Severity severity;
private Integer victims;
public Accident(Severity severity, Integer victims) {
this.severity = severity;
this.victims = victims;
}
}
Код: Выделить всё
private List accidents;
public AccidentArchive(List accidents) {
this.accidents = accidents;
}
public Map getMaxVictimsPerSeverity() {
//Not working correctly
return getAccidents().stream().collect(Collectors.toMap(Accident::getSeverity, Accident::getVictims, Integer::max));
}
Например, выходные данные карты могут быть такими: SLIGHT=1, SERIOUS=3, FATAL=5.
Я пробовал использовать библиотеки «Коллекции», «Коллекторы» и «Компаратор», но не могу найти способ разделить все несчастные случаи по каждому значению серьезности, получить максимальное значение. количество жертв для каждой, а затем сохраните оба значения в Map.
Сейчас функция запускается следующим образом:
Код: Выделить всё
public Map getMaxVictimsPerSeverity() {
return getAccidents().stream().collect(Collectors.toMap(Accident::getSeverity, ...))
Подробнее здесь: https://stackoverflow.com/questions/723 ... as-a-value
Мобильная версия