Есть CSV file с даними и разделителем кома между столбцами. Csv file прикреплен ниже Нужно по группировать эти данные и сгенерировать новый CSV file в таком формате . Я файл открываю через BufferedReader, а дальше не понимаю как его группировать
public static void main(String[] args) throws IOException {
Stream<String> lines = Files.lines(Paths.get("test - test.csv")).skip(1);
Map<String, Map<LocalDate, Integer>> map = groupByNameAndDate(lines);
// print
map.forEach((s, localDateIntegerMap) -> {
System.out.print(s);
localDateIntegerMap.forEach((date, numPatients) -> System.out.print(" " + date + " " + numPatients));
System.out.println();
});
}
private static Map<String, Map<LocalDate, Integer>> groupByNameAndDate(Stream<String> lines) {
Map<String, Map<LocalDate, Integer>> map = new TreeMap<>();
lines.forEach(s -> {
String[] parsedParts = s.split(",");
String name = parsedParts[0];
Map<LocalDate, Integer> localDateIntegerMap = map.get(name);
if (localDateIntegerMap == null) {
localDateIntegerMap = new TreeMap<>();
}
LocalDate date = LocalDate.parse(parsedParts[1], DateTimeFormatter.ofPattern("MMM dd yyyy"));
Integer numOfPatients = localDateIntegerMap.get(date);
if (numOfPatients == null) {
numOfPatients = 0;
}
localDateIntegerMap.put(date, numOfPatients + Integer.parseInt(parsedParts[2]));
map.put(name, localDateIntegerMap);
});
return map;
}
Ну формат вывода вы уж сами выберите, главное, данные сгруппированы
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Создаю диалоговое окно с множественным выборомПодскажите, как правильно отменить изменения выбора после нажатия на кнопку Отмена или закрытия...
Разбирал документацию Spring, нашёл там термин SPIЧто он означает и какое у него отличие от API? Очень желательно с примерами на Java
я делаю игру на java в виде 2д бродилки с видом сверху и также в моей игре есть робот надо запрограммировать робота так чтобы он обходил все преграды...