我一直在深入研究用Java實現的HashMap
。所有值都存儲在一個「桶」中,該桶是一個Entry
對象。我期待它是一個集合或我在這裏錯過了什麼?什麼類型是HashMap存儲桶
0
A
回答
1
該條目是一個集合(一個輕量級的鏈接列表,嚴格來說不是java Collection
)。條目可以相互鏈接。
static class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;
final int hash;
}
5
沒有。由於它不必讓用戶通過API訪問存儲桶,因此HashMap
通過在內部滾動自己的非常小的鏈接列表實現來減少內存使用量並實現更簡單的實現。它可能使用LinkedList
,但它不需要雙向鏈表,並且將鏈接,密鑰,值,密鑰的哈希代碼等打包到一個對象中會更有效。
0
我不知道你在看哪個實現,但在OpenJDK 6 version中,很顯然Entry
存儲單個值,並且每個Entry
在鏈表中形成一個節點。
相關問題
- 1. 爲什麼LinkedList作爲HashMap的存儲桶實現而不是另一個Hashmap?
- 2. AWS:什麼是存儲桶名稱?
- 3. HashMap存儲桶中的條目數
- 4. Java HashMap重複存儲桶條目
- 5. java 8 HashMap存儲桶中使用哪種樹型?
- 6. HIVE - 存儲桶加入的用例是什麼
- 7. S3存儲桶中的所有小文件是什麼?
- 8. HashMap中桶的數量是什麼意思?
- 9. 什麼類型的數據可以類類型存儲?
- 10. 在Amazon S3上使用多個存儲桶還是整合到一個存儲桶中有什麼好處?
- 11. 什麼是存儲
- 12. D中的存儲類是什麼?
- 13. 什麼是D「out」存儲類有用?
- 14. 什麼是存儲multiselect選取列表的數據類型?
- 15. 適用於存儲ISOYearMonth的Oracle數據類型是什麼?
- 16. 在RDBM中存儲多媒體的數據類型是什麼?
- 17. 什麼是在MySQL中存儲布爾值的數據類型?
- 18. 什麼是存儲表格數據結構的最佳類型?
- 19. 如何在JavaScript中閱讀什麼類型的存儲是'this'?
- 20. Android中某些文本的存儲類型是什麼?
- 21. 如何在Java中存儲矢量?什麼是數據類型?
- 22. 在C++中存儲對象類型的好方法是什麼?
- 23. 什麼是正確的SQLAlchemy類型來存儲大字符串?
- 24. 用python存儲時間長度的類型是什麼?
- 25. 什麼是適合存儲少量元素的集合類型?
- 26. 什麼是用於存儲JSON對象的Solr字段類型?
- 27. 什麼是存儲時區的適當數據類型?
- 28. HashMap的keySet()返回Set的子類型是什麼?
- 29. 爲什麼Hashmap值類型需要double []但不是double?
- 30. 找出在HashMap中使用的是什麼類型