の実装ではHashMap
、連結リストを使用してバケット内の要素を表します。各エントリには、次のエントリへの要素があります。参照:参照。ただし、LinkedList
クラスの実装では、各要素には前の要素への参照があり、次の要素はRefを参照してください。あるリンク リストでは重要で、別のリンク リストでは重要ではない理由を理解しようとしているだけprevious
ですか?
質問する
66 次
4 に答える
2
Entry
( の内部クラスHashMap
) は、汎用リンク リストの一部ではありません(現状のままLinkedList
)。唯一の目的は、要素を探して順方向に反復することです。したがって、参照は必要ありませんprevious
。
于 2013-03-29T12:09:25.200 に答える
1
前の参照では、 LinkedList を双方向の List にしています。これにより、 List を逆方向に繰り返すことができます。
于 2013-03-29T12:00:56.647 に答える
1
厳密に言えば、リンクされたリストでは前の要素への参照は必要ありません。はjava.util.LinkedList
、実際には双方向にリンクされたリストです。これは、次の操作を効率的に実装するために必要です。
- add(E)、リストの最後に追加します。
- リストの最後の要素を取得するgetLast() 。
- ListIterator.previous()を使用すると、リストを逆順にたどることができます。
上記の操作は、Map.Entry のリンクされたリストには役に立ちません。
getLast()
はLinkedList
list インターフェイスへの追加ですが、他の 2 つは前述のインターフェイスで必要であることに注意してください。
于 2013-03-29T12:10:03.807 に答える
0
LinkedList は汎用の実装です。逆方向に反復したい場合があります。マップの場合、バケットを検索するとonly
前方に反復されます。逆方向に反復する必要がないため、実装されていません。
于 2013-03-29T12:10:28.107 に答える