Загрузка 1 000 000 номеров занимает 2 секунды для загрузки в treemap (двоичное дерево поиска), но для загрузки в хэш-карту (в java) требуется миллисекунды.
Единственное различие между ними заключается в том, что я могу установить начальный размер hashmap, поэтому он не нуждается в повторном размере.
Почему TreeMap Java не позволяет получить начальный размер?
Неправильно ли предположить, что начальный размер массива TreeMap должен быть установлен? Есть ли другая причина, почему это так медленно?
Есть ли логическая причина того, почему нельзя установить TreeMap или любое дерево двоичного дерева поиска, размер или это неправильно?
Это не единственная разница. Вставки в treemap берут O (log n), в то время как hashmap принимает O (1). – Zong
Это не так. TreeMap и HashMap будут использовать немного другую структуру для хранения своих внутренних данных. Каждый из них не связан с TreeMap, чтобы попытаться разрешить позицию в дереве, в которую должна быть помещена новая запись, на время – MadProgrammer
. Сегодня вы узнали, как * удивительно * быстрая хэш-карта. – Boann