Лучший алгоритм и структура данных для сравнения двух больших списков - PullRequest
0 голосов
/ 06 июня 2018

Каждый день я получаю один список из 30-40 тыс. Строк, каждая строка содержит значимые или бессмысленные имена, такие как fastcar, ultrafastcar, blablablacar и т. Д.

У меня также есть один большой список, который состоит из всех слов на любом языке(около 50 тыс. строк).

И я хочу сравнить первый список со вторым, чтобы отфильтровать, который включает (или начинается с - заканчивается на) слова из второго списка.Я имею в виду, что если слово «ultrafastcar», то оно не будет фильтроваться, а «blablacar» будет отфильтровано.

Я подготовил несколько кодов Java, но сравнение списков занимает слишком много времени.Я использовал ArrayLists и сравнил их с методами contains (), startWith ().Являются ли ArrayLists правильным выбором и какой еще алгоритм я могу использовать, чтобы сравнить их, кроме этих методов.

1 Ответ

0 голосов
/ 06 июня 2018

Вы можете попробовать реализовать троичное дерево поиска со вторым списком, а затем проверить, существуют ли слова в первом дереве.

...