2012-08-28 12 views
5

ConcurrentSkipListMapのコンストラクタでinitial capacityHashMapのように設定できないのはなぜですか?ConcurrentSkipListMapの初期容量を設定できないのはなぜですか?

+0

@MarkoTopolnik skiplistのデータ構造は私にとって初めてのものです。私はソートされたマップの実装が必要であり、そのマップは複数のスレッドから同時の変更を繁栄させる必要があります。私はConcurrentSkipListmapを探していました>前もってCocurrenthashmapを使用していました。 – Geek

+0

@Geek - 良いデータ構造の本を読む時間。 –

+0

@StephenC Cormenを読んでいるが、まだSkipListsに行っていない。赤い黒い木々を覆った。 – Geek

答えて

6

このデータ構造には、最初の容量のコンストラクタパラメータが意味を持たない複数のLinkedListが付いているためです。

HashMapは、このテーブルの最初のサイズを越えると、HashMapが新しいテーブルを非常に大きなサイズで再割り当てするため、初期容量を設定することが理にかなっている配列(連続したメモリ空間)高価です。

+1

(ただし、HashMapの場合、地図のサイズを大幅に過大評価するのはコストがかかります...) –

関連する問題