0

指定した容量よりも多くのアイテムを入れた場合、HashMap の古いアイテムはどうなるか教えてください。例えば:

HashMap<String, Bitmap> hashmap= new HashMap<String, Bitmap>(5);

容量を 5 に設定しましたが、この HashMap に 10 個のアイテムを配置すると、最初の 5 個のアイテムとビットマップはどうなるでしょうか?

4

1 に答える 1

6

初期容量を指定しているだけです-HashMapとにかく必要に応じて拡大し、内容を内部的にコピーします。これは最適化としてのみ利用できるため、大きな容量が必要になることがわかっている場合は、その容量から始めて、コピーが不要になるようにすることができます。

ドキュメントから:

HashMap のインスタンスには、そのパフォーマンスに影響を与える 2 つのパラメーターがあります。初期容量と負荷係数です。容量はハッシュ テーブル内のバケットの数であり、初期容量は単にハッシュ テーブルが作成された時点の容量です。負荷率は、容量が自動的に増加する前に、ハッシュ テーブルがどれだけいっぱいになることができるかの尺度です。ハッシュ テーブルのエントリ数が負荷係数と現在の容量の積を超えると、ハッシュ テーブルが再ハッシュされ (つまり、内部データ構造が再構築され)、ハッシュ テーブルのバケット数が約 2 倍になります。

...

多くのマッピングが HashMap インスタンスに格納される場合、十分な容量で作成すると、必要に応じて自動再ハッシュを実行してテーブルを大きくするよりも効率的にマッピングを格納できます。

于 2014-04-12T10:33:02.930 に答える