Самый быстрый и эффективный способ поиска пары ключ-значение в Java? - PullRequest
10 голосов
/ 18 июня 2010

ПРЕДУПРЕЖДЕНИЕ:
Этот вопрос не был спорным!

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

Ответы [ 2 ]

11 голосов
/ 18 июня 2010

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

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

7 голосов
/ 18 июня 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...