Как сохранить список из более чем 5000 значений в переменной, а затем сравнить его?

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

Это то, что я делаю в настоящее время, но будет более 5000 записей, которые будут добавлены в girlNames, Не уверен, что это правильный подход, чтобы сделать такую ​​вещь, а затем сравнить ее с заданным значением.

Также оцените, если кто-то объяснит логику, почему другой метод лучше, чем этот.

Set<String> girlNames = new HashSet<String>();
girlNames.add("monica");
girlNames.add("ribeka");
girlNames.add("angelina");

String str = "angelina";
if (girlNames.contains(str.toLowerCase())) {
    System.out.println("found");
} else {
    System.out.println("not found");
}

1 ответ

Используя HashSet полностью подходит для ваших целей:

  • HashSets имеют сложность поиска O(1) в среднем случае, что означает, что производительность не ухудшается при больших объемах данных.
  • 5000 Stringс таким размером можно легко сохранить память. По скромной оценке, каждый String Объекту потребуется 1 КБ памяти, всего 5 МБ.
Другие вопросы по тегам