以下からの抜粋局bは、まだシリコンバレーのビデオチュートリアルのJAVAです
設定インターフェイスは、3つの実装クラスがあります。
/ ---- HashSetの:設定メインインタフェースの実装クラス、スレッドセーフ; NULL値が記憶されていてもよい;底:配列リスト+
/ ---- LinkedSet:HashSetの増加リンク、このような順序トラバーサルにトラバーサルは、より効率的な頻繁なトラバーサルに添加することができるときのサブクラスとして。
/ ---- TreeSetの:使用赤黒木の実装では、追加された要素は、同じクラスのものでなければならない要素を追加することのようなものをカスタマイズすることができます。
匹敵するとコンパレータ二つの方法:クラスが同等である必要があります追加、二つの方法があります。
HashSetのクラスに追加し、hashCodeメソッドをオーバーライドしてくださいと方法、そして可能な限り一貫性に等しいです。
HashSetのは、新しい要素aを追加します。
ハッシュ値を計算するハッシュアルゴリズムにより、それはいくつかのマッピングによって、対応する配列のインデックスにマッピングされます。
1インデックス位置に要素を追加した場合。
ハッシュ値が異なる場合素子2 B場合、ハッシュ値比較は、次に添加します。
ハッシュ値が同じである場合、戻り3の結果がfalseの場合、それは、メソッドが呼び出されると等しい、追加される他の追加、または。
23例では、正常に追加要素の場合:
JDK 7:配列要素Aは、要素B点に
JDK 8:要素b変わらず、ポイント要素