Самый быстрый и эффективный способ поиска пары ключ-значение в Java?
ОТКАЗ:
Этот вопрос не должен был быть аргументированным!
Что такое быстрый и меньший способ сбрасывания памяти для поиска пары ключ-значение? Я буду хранить элементы в ключевом значении как отношение, и мне нужно быстро получить к ним доступ. Должен ли я использовать базу данных SQLite? Карта? Hashtable? HashMap? Пожалуйста, дайте некоторые преимущества/недостатки использования любого способа поиска.
Ответы
Ответ 1
Любая хеш-структура Map
- это путь до тех пор, пока ваш хеш-функция для ключа эффективна. Вы можете использовать значение id: s в качестве результата поиска для сохранения памяти во время поиска.
Если ваши данные уже находятся в базе данных, вы можете оставить этот поиск полностью в RDBMS, ведь они созданы для этого.
Ответ 2
Если ваши данные находятся в памяти, Map
в целом являются вашими друзьями - они предназначены для этого.
Не используйте Hashtable
. Это намного медленнее, чем новые реализации Карты. потому что его методы синхронизированы, что в большинстве случаев не требуется (и при необходимости есть гораздо лучшая альтернатива - см. ниже).
В однопоточном контексте HashMap
, вероятно, будет в порядке.
Если вам нужна безопасность потоков, используйте ConcurrentHashMap
.