Группировка даних CSV file Java Console Application

246
29 июня 2022, 07:40

Есть CSV file с даними и разделителем кома между столбцами. Csv file прикреплен ниже Нужно по группировать эти данные и сгенерировать новый CSV file в таком формате . Я файл открываю через BufferedReader, а дальше не понимаю как его группировать

Answer 1
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;
}

Ну формат вывода вы уж сами выберите, главное, данные сгруппированы

READ ALSO
Как отменить изменения в AlertDialog.Builder?

Как отменить изменения в AlertDialog.Builder?

Создаю диалоговое окно с множественным выборомПодскажите, как правильно отменить изменения выбора после нажатия на кнопку Отмена или закрытия...

201
Что такое SPI (Интерфейс поставщика услуг)?

Что такое SPI (Интерфейс поставщика услуг)?

Разбирал документацию Spring, нашёл там термин SPIЧто он означает и какое у него отличие от API? Очень желательно с примерами на Java

192
маршрут для робота

маршрут для робота

я делаю игру на java в виде 2д бродилки с видом сверху и также в моей игре есть робот надо запрограммировать робота так чтобы он обходил все преграды...

220