Несколько ответов предложили HashSet
, а другие указали, что более простые коллекции могут быть быстрее для небольших наборов - вы не сказали, какой размер набора.
Размер строк также имеет значение, потому что HashSet
и т. Д. Будет использовать хеш-код строки, который вычисляется из всего содержимого строки (а затем кэшируется). Это может занять некоторое время, но, с другой стороны, оно может быть уже вычислено, в зависимости от вашего кода, поэтому не потребует дополнительных затрат.
В некоторых случаях вы можете исключать строки из набора по их размеру или проверять первые несколько символов - это зависит от ваших данных и вашего набора строк. Структура данных, такая как Trie , может быть полезна здесь - (но вы хотели простое решение).
Если производительность критична, то вам необходимо тщательно сравнить все предложенные решения в реальных условиях. См. Как написать правильный микро-тест на Java?
Если вам действительно нужно быстрое решение (действительно ли это важно для вашего приложения?), То вам, возможно, придется мириться с «перебором»!