これについては、stackoverflow だけでなく web にもいくつかのトピックがありますが、私はそれらを明確に理解できませんでした。この回答は、ニクラスによるスタックオーバーフローと彼の表現で見つかりました。これにより、トピックに関する有意義な洞察が得られました。
いくつかのアスキー アート
key.hashCode()
|
| 32-bit value
| hash table
V +------------+ +----------------------+
HashMap.hash() ----+ | reference | -> | key1 | value1 | null |
| |------------| +----------------------+
| | null |
| offset |------------| +---------------------+
+--------> | reference | -> | key1 | value1 | ref |
|------------| +---------------------+
| .... | |
+----------------+
V
+----------------------+
| key2 | value2 | null |
+----------------------+
JavaはHashtableクラスを実装するためにどのハッシュ関数を使用しますか?
Map aMap = new HashMap();
aMap.put(key,value);
- だれか「オフセットとその値とは何か」を説明できますか? オフセット値はどこにマップされますか?
- そのハッシュテーブルは何ですか? オブジェクトの配列ですか?、そうであれば、各オブジェクトにはキー、値 1、および参照プロパティがありますか?.
誰かが上の図を段階的に再説明できますか. HashMap の背後にあるハッシュ メカニズムを理解できません。