Самый быстрый и эффективный способ поиска пары ключ-значение в Java?

ОТКАЗ:
Этот вопрос не должен был быть аргументированным!

Что такое быстрый и меньший способ сбрасывания памяти для поиска пары ключ-значение? Я буду хранить элементы в ключевом значении как отношение, и мне нужно быстро получить к ним доступ. Должен ли я использовать базу данных SQLite? Карта? Hashtable? HashMap? Пожалуйста, дайте некоторые преимущества/недостатки использования любого способа поиска.

Ответ 1

Любая хеш-структура Map - это путь до тех пор, пока ваш хеш-функция для ключа эффективна. Вы можете использовать значение id: s в качестве результата поиска для сохранения памяти во время поиска.

Если ваши данные уже находятся в базе данных, вы можете оставить этот поиск полностью в RDBMS, ведь они созданы для этого.

Ответ 2

Если ваши данные находятся в памяти, Map в целом являются вашими друзьями - они предназначены для этого.

Не используйте Hashtable. Это намного медленнее, чем новые реализации Карты. потому что его методы синхронизированы, что в большинстве случаев не требуется (и при необходимости есть гораздо лучшая альтернатива - см. ниже).

В однопоточном контексте HashMap, вероятно, будет в порядке.

Если вам нужна безопасность потоков, используйте ConcurrentHashMap.