У меня есть простое приложение, которое считывает данные небольшими строками из больших текстовых файлов и сохраняет их в базе данных.Чтобы фактически сохранить каждую такую строку, приложение вызывает следующий метод несколько (может тысячи или более) раз:
setValue(String value)
{
if (!ignore(value))
{
// Save the value in the database
}
}
В настоящее время я реализую метод ignore()
, просто последовательно сравнивая набор строк,например,
public boolean ignore(String value)
{
if (value.equalsIgnoreCase("Value 1") || (value.equalsIgnoreCase("Value 2"))
{
return true;
}
return false;
}
Однако, поскольку мне нужно проверить множество таких «игнорируемых» значений, которые будут определены в другой части кода, мне нужно использовать структуру данных для этой проверки вместо несколькихпоследовательные if
операторы.
Итак, мой вопрос: какая бы самая быстрая структура данных из стандартной Java для реализации этого?Хэш-карта?Множество?Что-то еще?
Время инициализации не является проблемой, поскольку оно будет происходить статически и один раз за вызов приложения.
РЕДАКТИРОВАТЬ: предлагаемые к настоящему времени решения (включая HashSet) выглядят медленнеепросто используя String [] со всеми игнорируемыми словами и просто запуская «equalsIgnoreCase» для каждого из них.