Я исследовал, чтобы найти более быструю альтернативу списку. В книге алгоритмов hashtable
представляется наиболее быстрым, используя отдельную цепочку. Затем я обнаружил, что у java есть реализация hashtable
, и из того, что я прочитал, кажется, что она использует отдельную цепочку. Однако есть накладные расходы на синхронизацию, поэтому реализация hashmap
предлагается как более быстрая альтернатива hashtable
.Java hashtable или hashmap?
Моих queations являются:
- Является ли Java
hashmap
быстрой структура данных, реализованная в Java для вставки/удаления/поиск? - При чтении несколько сообщений были обеспокоены использованием памяти
hashmap
. В одном сообщении упоминалось, что пустойhashmap
занимает 300 байт. Являетсяhashtable
более эффективной памяти, чемhasmap
? - Кроме того, есть функция
hash
в каждом из наиболее эффективных дляstrings
?
Если какая-либо одна структура данных была наиболее эффективной для всех случаев, тогда вообще не было бы необходимости в какой-либо другой структуре данных. Теперь, пожалуйста, объясните свой сценарий. –
Я думаю, это зависит от типа данных, который вы используете, и от ожидаемых сценариев. можете ли вы рассказать о потребностях вашего приложения? btw, вы можете установить начальную емкость hashMap вместо использования по умолчанию. –
Хэш-таблица может быть «пустой», но все равно потребуется основной массив, который идет с ним - размер этого массива зависит от того, насколько велика ваша хэш-таблица. – Dukeling