質問: JavaのHashSetを繰り返す必要があるのはなぜですか? Javaでは、HashMapクラスがMapインターフェースを実装し、HashSetクラスがSetインターフェースを実装していることを私は理解しています。 私はまた、これら両方のクラスがハッシュテーブルの実装であることを理解しています。 それは、HashMapがget()メソッドを持っているのに、なぜHashSetを反復処理する必要があるのでしょうか。ハッシュテーブルがそれに関連付けられた値を通して要素を取得することができるという意味ではありませんか? 私はドキュメントを調べて検索をしましたが答えが見つかりませんでした。 前もって感謝します。
回答: `set.contains(x)<�の場合、` HashSet (または `Set` の実装)の `get()`メソッドは冗長になります。/code>は `true` を返します。 `Set` の対応する要素と等しいと見なされるインスタンスへの参照( `x` )は既にあります。 `Map` インターフェースでは、キーに関連付けられた値を取得するために `map.get(key)`が必要です。 `Set` インターフェースにはキーしかなく、(意味のある)値は関連付けられていません。 > > これらのクラスはどちらもハッシュテーブルの実装であることも理解しています。 > > > そのステートメントによって `HashSet` が補助的な `HashMap` インスタンスで実装されていることを意味しているのなら、それは単なる実装の詳細です。このバッキング `HashMap` のキーに対応する値はすべて同じダミーオブジェクトへの参照です。バッキング `HashMap` に対して `get()`を呼び出す理由はありません。