迷茫2017-04-17 16:56:09
ソースコードを確認したところ、HashSet
のHash
にここに記事があると思います。
1. まず要素を追加するプロセスを見てみましょう
//HashSet コード
HashSet
内部で管理されている map
//HashMap コード
は Element
をハッシュすることがわかります。そのため、Foo(1)
を追加すると、このリンクは HashSet
に保存するプロセスで必須になります。
もう一度比較してみましょう
//HashSet コード
//HashMap コード
リーリー リーリー結論HashSet
コンテナに挿入するときに要素をハッシュし、コンテナに要素が含まれているかどうかを判断するときに要素をハッシュします。それらを比較するのがハッシュ値です。要素の。
ringa_lee2017-04-17 16:56:09
equals メソッドですが、2 階では String の equals メソッドについて説明していることに注意してください。これは、String の equals メソッドが書き換えられているためです。被験者が contains メソッドを通じて一般のオブジェクトを比較したい場合でも、そうする必要があります。どのようなルールを決定するかを String のように書き換えてください
PHPz2017-04-17 16:56:09
リーリー
これは AbstractCollection
の実装です。AbstractList
、AbstractSet
はすべてこれを親クラスとして使用して実装されます。