Ответ 1
Почему существует неконкурентная TreeMap с одной стороны и ConcurrentSkipListMap на другом?
Я подозреваю, что это было сделано, потому что одновременное создание древовидной структуры было слишком сложным или было связано с проблемами с блокировкой производительности. С точки зрения упорядоченных коллекций, SkipLists - это очень простые структуры данных и обеспечивают подобное поведение и производительность для деревьев.
На самом деле я больше разочарован тем, что не существует несовместимой коллекции SkipList.
Можно ли сказать, что в SkipListMap включен TreeMap?
Нет. Можно с уверенностью сказать, что SkipList
дает похожие функции в терминах упорядоченного набора элементов, который дает производительность O(logN)
для поиска, вставки, удаления и т.д. По крайней мере, это дает вероятностную аппроксимацию этой производительности.
Здесь хорошая страница о скипистах. Это чрезвычайно классные структуры данных. Я могу только надеяться, что они преподаются в современных классах структур данных программирования.