1

私はそれLinkedHashSetが拡張するのを見ました、HashSetそして私はそれが秩序を維持することを知っています。
ただし、JDKのコードを確認すると、LinkedHashSetconstuctorのみが含まれており、実装は含まれていないようです。したがって、すべてのロジックはHashSet
それが正しければ、なぜそれはそのように設計されているのですか?非常に紛らわしいようです。

編集:質問に不幸な間違いがありました。HashMapLinkedHashMapの代わりにHashSetとを書きLinkedHashSetました。可能であれば、質問に答えて修正しました。
また、Java設計者がなぜそのように実装することを選んだのか興味がありました。

4

2 に答える 2

1

はい、LinkedHashMapそのスーパーコンストラクターを呼び出します。init()それが行うことの1つは、スーパーコンストラクターによって呼び出されるメソッドをオーバーライドすることです。

LinkedHashMapHashMap二重リンクリストの実装が追加されたです。

于 2012-05-21T07:58:27.847 に答える
0

あなたが言ったように、2つのデータ構造の違いは、がペアの挿入順序を保持することですLinkedHashMapHashMap

したがって、リンクされたものは、のHashMap標準メソッドを介して使用することを目的としてHashMapおり、追加された唯一のメソッドはremoveEldestEntry()であり、データ構造の「リスト」部分を処理する場合に役立ちます。

于 2012-05-21T08:01:39.560 に答える