2

ConcurrentHashMap の実装方法を理解するために、 IBM DeveloperWorks の記事を読んでいました。「削除操作」のセクションでは、削除操作が 2 段階のプロセスであることが示唆されています。

  1. Entry 要素を見つけて null にする
  2. ヘッドから削除された要素までのチェーンの部分が複製され、削除された要素に続くチェーンの残りの部分に結合されます。

ただし、ここで質問があります。Docjarで対応するコードを調べたところ、remove(Object key, int hash, Object value).

何かが足りないのか、それとも実装が記事と異なるのかよくわかりません。

4

1 に答える 1

2

この線

head = new Entry(p.hash, p.key, p.value, head);

これは「Object.clone()」クローン作成ではなく、「コピー コンストラクター」です。これは、より一般的な意味でのクローン作成です。

この行は 10 年前の記事にあり、実装remove(Object key, Object value)がまったく異なる現在の実装では見つからないことに注意してください。

于 2013-03-02T12:59:51.833 に答える