Сначала начните с самой простой вещи.
- Определите класс, который содержит необходимую информацию.
- Создайте пустой
List
этого типа класса. - Разобрать каждую запись в экземпляр этого класса и добавить ее в список.
- Сортировать список по названию задания (по возрастанию) и продолжительности (по убыванию).
- Перейти по спискупоследовательно и выведите первую запись для каждого имени задания.
Это просто, просто, достаточно эффективно и не должно использовать слишком много памяти.
У вас есть немногоСложность в том, что запись на самом деле занимает две строки, которые не обязательно расположены одна за другой.Но вы сказали, что анализ не является проблемой, поэтому я предполагаю, что вы знаете, как с этим справиться.
Единственная проблема, с которой вы можете столкнуться, - это если в файле журнала содержится так много записей, которые вы не можете сохранитьвсе в памяти.Если это так, то вы можете либо проявить творческий подход и сохранить только текущую самую длинную запись для каждого имени задания, либо вместо сохранения списка в памяти записать его на диск.Затем отсортируйте файл на диске и последовательно просмотрите его.
Сделайте самое простое, что, на ваш взгляд, сработает.Если это работает, не хватает памяти и завершается достаточно быстро, то все готово.Не беспокойтесь об оптимизации пространства или скорости.Переходите к другим, более важным вещам.