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