指定した容量よりも多くのアイテムを入れた場合、HashMap の古いアイテムはどうなるか教えてください。例えば:
HashMap<String, Bitmap> hashmap= new HashMap<String, Bitmap>(5);
容量を 5 に設定しましたが、この HashMap に 10 個のアイテムを配置すると、最初の 5 個のアイテムとビットマップはどうなるでしょうか?
初期容量を指定しているだけです-HashMap
とにかく必要に応じて拡大し、内容を内部的にコピーします。これは最適化としてのみ利用できるため、大きな容量が必要になることがわかっている場合は、その容量から始めて、コピーが不要になるようにすることができます。
ドキュメントから:
HashMap のインスタンスには、そのパフォーマンスに影響を与える 2 つのパラメーターがあります。初期容量と負荷係数です。容量はハッシュ テーブル内のバケットの数であり、初期容量は単にハッシュ テーブルが作成された時点の容量です。負荷率は、容量が自動的に増加する前に、ハッシュ テーブルがどれだけいっぱいになることができるかの尺度です。ハッシュ テーブルのエントリ数が負荷係数と現在の容量の積を超えると、ハッシュ テーブルが再ハッシュされ (つまり、内部データ構造が再構築され)、ハッシュ テーブルのバケット数が約 2 倍になります。
...
多くのマッピングが HashMap インスタンスに格納される場合、十分な容量で作成すると、必要に応じて自動再ハッシュを実行してテーブルを大きくするよりも効率的にマッピングを格納できます。