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

Отказ от ответственности:
Этот вопрос не был предназначен, чтобы быть спорным!

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

10
задан Cœur 10 September 2017 в 06:45
поделиться

2 ответа

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

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

11
ответ дан 3 December 2019 в 20:40
поделиться

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

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

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

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

7
ответ дан 3 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: