- 148 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:42:49 ]
- そうだね。
ハッシュマップは↓のようなデータ構造のイメージ hash1 : {key1:val1, key4:val4, key6:val6} hash2 : {key2:val2, key3:val3, key5:val5} hash3 : {key7:val7} key3でgetした場合、まずkey3のhashcodeであるhash2でgetして、 取得されたサイズ3のコレクションに対して、key3とのequalsが実行される。 最悪7回equalsが必要(size7のMapだから)なところ、 HashMapの実装であれば3回のequalsですんでいる。 実際には値がより均等に分散するアルゴリズムでhashcodeが計算されるため、 よほどHashMapのサイズが大きくならない限り 同じhashcodeにぶら下がるオブジェクトは多くて1個で収まる。→ 超速い
|

|