JavaのHashSetの機能、記憶機構とパフォーマンス分析の詳細な使用方法

HashSetの記憶機構:

  • 基礎となる記憶素子アレイの長さ、およびアレイは、アレイの着信長さが2のn乗でない場合、HashSetのは、それが自動的に2のn乗に拡張する、常に2のn乗です。
  • HashSetのコンストラクタ:
HashSet(int initialCapacity, float loadFactor)
//initialCapacity——控制底层数组长度
//loadFactor——当HashSet感觉到底层快要满的时候(0.75),会将底层数组容量扩充1倍,
//原来的数组就变成垃圾,等待回收,即rehash(重hash)
//说明:当LoadFactor为0.75时,75%的桶已满,HashSet会分配新的数组;LoadFactor越小,
//越消耗内存;LoadFactor越大,性能越低
//数组越满,才回去“重hash”,越有可能出现链表
  • メカニズムへのHashSetの:
  1. すべての要素がミックスに追加すると、オブジェクトはint値を得るために、HashSetのハッシュコード()メソッドが呼び出されます。
  2. int値は、記憶位置(インデックス配列)の底HashSetの[]配列で計算されるハッシュコードを()、返さ。
  3. 追加すべき要素が直接缶に、位置(空)でない場合、
  4. あなたがされている要素の位置を追加したい場合は、「チェーン」を形成する場所
  • HashSetのは、メカニズムの要素を取ります:
  1. 我々は要素を取りたい場合は、オブジェクトはint型の値を取得するために、HashSetのハッシュコード()メソッドが呼び出されます。
  2. int値は、HashSetのに収納位置(配列のインデックス)を算出するハッシュコードを()、返さ。
  3. 場所は正確に要素を直接取得することができます探している場合。
  4. 場所は、検索リスト要素に「一つずつ」のリスト、HashSetのを持っている場合

説明:最高のケースでは、パフォーマンスが堆積するために、ほとんどHashSetの配列が一致している、非常に高いパフォーマンスを引き出します

  • HashSetの2つのオブジェクトが等しい条件を考慮されています。
  1. ハッシュコード二つのオブジェクト()戻り値に等しいです。
  2. 比較2つのオブジェクトがまた真等号で返され
公開された111元の記事 ウォン称賛57 ビュー60000 +

おすすめ

転載: blog.csdn.net/qq_38358499/article/details/100631653