回答:
Set、put()操作によって置き換えられることはありません。
                    Set気づきましたput()。この場合、それは再びキーの横に置かれた同じ値です。これは、キーが存在するかどうかを確認して置くよりも良い場合とそうでない場合があります。どちらにしても、私はそれがどのように機能するかを理解しています。
                    HashSetの形で実装された効果だと思いますHashMap。ただし、あなたがクラスの開発者の1人でない限り、知ることは困難です。
                    最初に知っておく必要があるのは、のHashSetように機能することです。つまりSet、オブジェクトをに直接追加し、HashSet重複を含めることはできません。に直接値を追加するだけHashSetです。
しかし、HashMapあるMapタイプ。つまり、エントリを追加するたびに、キーと値のペアを追加します。
ではHashMap、重複する値を持つことはできますが、重複するキーを持つことはできません。でHashMap新しいエントリ古いものに置き換えられます。最新のエントリはにありHashMapます。
HashMapとHashSetの間のリンクを理解する:
覚えておいてください、HashMap重複キーを持つことはできません。舞台裏ではをHashSet使用していHashMapます。
オブジェクトをに追加しようとするとHashSet、このエントリは実際にはキーとして格納されますHashMap-のHashMap背後で使用されるものと同じですHashSet。この基盤HashMapにはキーと値のペアが必要なので、ダミーの値が生成されます。
同じに別の複製オブジェクトを挿入しようとするとHashSet、HashMapその下にあるオブジェクトのキーとして再度挿入しようとします。ただし、HashMap重複はサポートされていません。したがって、HashSetそのタイプの値は1つだけになります。補足として、重複するすべてのキーについて、HashSetのエントリに対して生成された値はランダム/ダミーの値であるため、キーはまったく置き換えられません。キーを削除して同じキー(ダミー値は同じ)を追加し直すことはまったく意味がないため、無視されます。
概要:
HashMap複製valuesは許可しますが、許可しませんkeys。 
HashSet重複を含めることはできません。
オブジェクトの追加が正常に完了しているかどうかを再生するには、次のことが確認できbooleanた値は、あなたが呼び出すときに返され.add()  、それが返すかどうtrueかfalse。返された場合はtrue、挿入されました。
HashMap allows duplicate valuesHashMapは古い値を新しい値に置き換えます。
                    ドキュメントは、この上のかなりはっきりしている:HashSet.add いない置き換えます。
指定された要素がまだ存在しない場合は、このセットに追加します。より正式には、このセットに要素e2が含まれていない場合、指定された要素eをこのセットに追加します(e == null?e2 == null:e.equals(e2))。このセットにすでに要素が含まれている場合、呼び出しはセットを変更せずにfalseを返します。
しかします置き換えます。HashMap.put 
マップに以前にキーのマッピングが含まれていた場合、古い値が置き換えられます。
それはHashSetの場合、それを置き換えません。
ドキュメントから:
http://docs.oracle.com/javase/6/docs/api/java/util/HashSet.html#add(E)
「指定された要素がまだ存在しない場合、このセットに追加します。より正式には、このセットに要素e2が含まれていない場合、指定された要素eをこのセットに追加します(e == null?e2 == null:e.equals( e2))このセットにすでに要素が含まれている場合、呼び出しはセットを変更せずにfalseを返します。
HashSetはHashMapによってバックアップされるため、最初にHashマップのputメソッドを確認する必要があります
HashMap基本的にはEntryを含みKey(Object)、その後を含み、Value(Object).InternallyでHashSetありHashMap、HashMapすでに指摘したように値を置き換えますが、実際にはキーを置き換えますか??? No ..これがここでのトリックです HashMapその値を基になるキーとして保持しHashMap、値は単なるダミーオブジェクトであるため、同じ値をHashMap(基になるマップのキー)に再挿入しようとすると、ダミーの値が置き換えられ、Key(Value for HashSet)は置き換えられません。
以下のHashSetクラスのコードを見てください。
public boolean  [More ...] add(E e) {
   return map.put(e, PRESENT)==null;
}ここでeはHashSetの値ですが、基になるマップのキーです。キーは置き換えられません。混乱を解消できるといいのですが。
HashMapかどうかを確認するためにkey、すでに呼び出す前に存在しているput裏にmap?