Из моего понимания
TreeMap :
1. Insert O( logN )
2. Delete O( logN )
3. Retrieve O( logN )
HashMap :
1. Insert O( 1 ) -> O( N )
2. Delete O( 1 ) -> O( N )
3. Retrieve O( 1 ) -> O( N )
Я знаю, что TreeMap использует красно-черное дерево как внутреннюю структуру данных. Однако я не уверен в внутренней структуре данных HashMap.
- Реализован ли HaspMap с использованием
Хеш-таблица?
- Если ответ «Да», то используется ли реализация массива
или реализация базы ссылок?
- А если он использовал базу массива, то сортируется или не сортируется?
Я работаю над небольшим проектом, использующим Java, чтобы продемонстрировать сложность выполнения всех операций (вставка, удаление, получение) между HashMap и TreeMap, но я не знаю, как связать формулу теории с реальным результатом запустить программу. Например, от запуска быстрого теста:
1. Вставьте 10000 элементов
2. Удалить 100 элементов
3. Получить 100 элементов
Я получил эту информацию:
HashMap
Create time : 6348015 nano seconds.
Remove time : 98458 nano seconds.
Retrieve Found time : 59762 nano seconds.
Retrieve Not Found time : 39097 nano seconds.
--- end ---
TreeMap
Create time : 20518163 nano seconds.
Remove time : 274221 nano seconds.
Retrieve Found time : 112072 nano seconds.
Retrieve Not Found time : 168442 nano seconds.
--- end ---
Я хотел бы знать, как я могу найти связь в эти времена с теоретической временной сложностью, такой как O (N) или O (logN)?
И этот результат меня удивил, так как я всегда думаю, что TreeMap сильно побьет HashMap. Кто-нибудь может дать мне краткое объяснение этих вещей? Заранее спасибо.