Сравните содержимое одного файла с другим файлом в Spring Batch Java - PullRequest
0 голосов
/ 16 июня 2020

Требование:

Считайте, что 1 файл (большой файл размером 5 МБ, состоящий из 200K записей) имеет список номеров рулонов. Рассмотрим другой файл (такой же большой файл), состоящий из деталей номеров рулонов в столбцах. Например:

file1:

Roll-Number

file2:

Roll-Number Name Course HOD Subject

Обратите внимание, что приложение Spring Batch разработано с помощью ItemReader, ItemProcessor и ItemWriter .

Итак, FlatFileItemReader используется для чтения записи из file1 в первую очередь. С помощью Roll-Number, полученного из файла file1, мне нужно найти в файле file2 совпадение в столбце Roll-Number, и, если он найден, мне нужно получить все детали (другие значения столбца) этой записи и обработать их.

Но я думаю, что это будет временная сложность O (n ^ 2), поскольку для одной записи из файла1 мне нужно искать весь файл2 (который может быть большим файлом) до конца, в худшем случае каждый раз, когда файл1 read.

Это хорошая идея - прочитать весь файл2 и сохранить его в памяти в виде переменной (например, переменной HashSet). Поиск в переменной HastSet будет быстрее, чем поиск в файле). Но потребление памяти будет больше.

Любые другие предложения по более быстрому поиску.

...