Как сохранить список из более чем 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
полностью подходит для ваших целей:
HashSet
s имеют сложность поиска O(1) в среднем случае, что означает, что производительность не ухудшается при больших объемах данных.- 5000
String
с таким размером можно легко сохранить память. По скромной оценке, каждыйString
Объекту потребуется 1 КБ памяти, всего 5 МБ.