День добрый заглянувшим.
Имеется: лог от 1 до N тысяч строк вида
Хотелка: подключать, отключать показ источников.
Т.е. к примеру хочу посмотреть все действия пользователя, тык галку User и показывает все записи с источником User.
Проблема: Собственно в размере и подходе. Сам я вижу 2 подхода:
1. Просто перебором строк по условию выдавать только нужные.
if(line.contains("User"))
viewRow();
- Но время обработки большое, тем более что сообщения могут быть разбросаны очень сильно. Так же обновление лога ведёт к пересчёту строк.
2. Забивать данные в какой-нибудь контейнер с ключом в виде источника.
map["User"] = "время источник: данные";
+ Быстрый вывод.
- контейнер много места занимать будет.
Общий минус обоих подходов - с большими файлами они не справятся, ибо в 1 случае будет тормоз и вылет из-за переполнения, во 2 случае будет переполнение.
Вопрос: как сделать лучше. Предлагайте свои варианты. Если есть литература, то приводите литературу. Буду рад любой информации.