Алгоритм обработки данных
- Выбрать CSV файл
- Прочитать файл с помощью CSVReader
- Каждую строку из файла добавить в массив и элементы разделить по запятой
- Для каждой строки в файле создать объект Product и заполнить его соответствующие поля
- Добавить заполненный объект Product в список Products
- С помощью ListIterate отфильтровать уникальные Product by ID в Products
- Отсортировать коллекцию Products с помощью Comparator по Price
- Добавить 999 первых обработанных объектов Product из каждого файла в коллекцию cheapestProducts
- Отсортировать по Price первые 999 Product в cheapestProducts и отфильтровать по уникальным ID
- Преобразовать cheapestProducts в массив строк stringData
- Сохранить stringData в виде csv файла
Алгоритм архитектуры программы
- Выбрать директорию с CSV файлами
- Для каждого CSV файла в директории запустить метод Collector.dataCollecting в новым потоке
- Из каждого файла по завершению обработки добавить полученные данные в итоговую коллекцию cheapestProducts
- Запустить метод Collector.dataOutputting для финальной обработки коллекции cheapestProducts и записи итоговых данных в CSV файл