Какое дерево используется в TreeSet и TreeMap в Java?
Это деревья AVL, красно-черные деревья или что-то еще?
5 ответов
С java.util.TreeMap<K,V>
документы:
A красно-черное дерево на основе
NavigableMap
реализация.
для таких вопросов, как эти, вы всегда должны сначала обратиться к документации. API не должен описывать все внутренней работы class
, но обычно используются элементарные сведения, такие как общие структуры данных и алгоритмы зарегистрированный.
другие Java коллекции Framework trivias
это все маленькие мелочи, которые также четко документировать:
-
TreeSet
осуществляется сTreeMap
-
HashSet
осуществляется сHashMap
-
Collections.sort
использует измененный mergesort -
Map<K,V>
неCollection<?>
-
ArrayList
не указывает точную политику роста (в отличие, скажем,Vector
)
вопросы
первое предложение карта деревьев Javadoc гласит:
красно-черное дерево на основе
NavigableMap
реализация.
Это красно-черное дерево в реализации Oracle desktop Java, но AVL-дерево в Android.
TreeSet основан на TreeMap. И они используют красно-черное дерево,красно-черное дерево является своего рода AVL.