Итак, у меня есть файл произвольной длины со следующим форматом:
@HEADER1
//arbitrary lines of data
@HEADER2
//arbitrary lines of data
....
Я извлеку каждый заголовок и сохраню его в Hashmap, а затем начну (последовательно) анализировать другой файл, который является надмножеством file1, например. имеет следующий формат:
@HEADER1
//arbitrary lines of data
//extended information
@HEADER2
//arbitrary lines of data
//extended information
Итак, моя идея состоит в том, что я создам хэш-карту заголовков - один раз пройдя по файлу 1, а затем перейду к файлу 2, и на каждом заголовке в нем я проверю, есть ли он в hasmap, если да - я буду сделать что-то с данными. Поэтому мне было интересно, является ли это оптимальным решением - в соответствии с моими закулисными вычислениями это будет O (n), тогда как, если бы у меня был массив и для каждого заголовка в файле 2, проверялось ли оно также в Arraylist будет иметь выход O (n ^ 2), тогда как N - количество заголовков в Arraylist - я прав?
Если есть еще более эффективный способ, я был бы рад возглавить его.
РЕДАКТИРОВАТЬ:
Я не могу гарантировать, что порядок заголовков будет таким же, только то, что в файле1 должно существовать в файле2. Кроме того - мне не нужно ничего сохранять для ЗНАЧЕНИЯ, в этом случае мне просто нужен быстрый доступ к ключу.