2016-10-05 7 views
1

こんにちは、私は配列リストとベクトルの負荷要因を見つけようとしていましたが、それを見つけることができませんでした。私はHashMapと他のMapの負荷率が0.75であることを知っています。ベクトルとアーラリストの負荷率をチェックする方法を私に教えてくれる人はいますか?ArraylistとVectorの荷重係数は?

+4

ベクトルとArrayListには負荷係数がありません。 – Eran

+2

これは関連する質問です - http://stackoverflow.com/questions/33540583/why-does-map-has-loadfactor-and-list-does-not-have-it/ – Eran

+0

@Eran貴重なリンクとあなたのおかげで応答。 – Som

答えて

1

ArrayListVectorのサイズを増やす方法を知りたいと思います。

ArrayListの場合、要素を挿入するたびに、ネストされた配列のサイズを拡大する必要があるかどうかがチェックされます。はい、一般的に、その大きさは一緒に成長する場合:一部の特殊なケースについて

newCapacity = oldCapacity + (oldCapacity >> 1); 

、例えば、要素の多くまたは膨大な数を追加し、物事は異なるものになります。 java.util.ArrayListソースコード内のgrow(int minCapacity)関数を参照してください。 Vectorについて

、一般的に、その大きさは一緒に成長します:いくつかの特別なケースでは

newCapacity = oldCapacity + ((capacityIncrement > 0) ? 
             capacityIncrement : oldCapacity); 

java.util.Vectorgrow(int minCapacity)を参照してください。

+0

私はArrayとVectorのソースコードも使っています。しかし、oldCapacityとcapacityIncrementがどのような値を保持しているかは確かです。 – Som

+0

@Somよく、初期値と入れ子配列に追加する要素の数によって異なります。 'ArrayList'と' Vector'のための独立したコンストラクタがあり、initialCapacityとcapacityIncrement( 'Vector'のみ)を指定します。パラメーター化されていないコンストラクターを使用すると、値は** default value **で初期化されます。 –

1

のArrayList:

  • 初期容量:10
  • 負荷率:1(リストがいっぱいになった)
  • 成長率:current_size + current_size/2

ベクター:

  • 初期容量:10
  • 負荷率:1(リストがいっぱいになったとき)
  • 成長率: current_size * 2(capacityIncrementだけが定義されていない場合) current_size +はcapacityIncrement(capacityIncrementだけベクトルの初期化中に定義されている場合)
+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 16160306) –

+0

リンクを削除し、上記のコメントのみを説明しました。 –

関連する問題