標的數據結構有關的ArrayList底層數據結構是數組,對於鏈表它是鏈接對象和HashMap的或哈希表它可以是鏈表或樹數組,什麼是爲HashSet的
3
A
回答
2
HashSet的使用HashMap的內部中的HashSet中使用的數據結構用於存儲數據。我相信HashMap是一個Entry對象的數組。
一個相關的交理解HashMap中的內部結構:
https://stackoverflow.com/questions/11596549/how-does-javas-hashmap-work-internally
5
5
散列的幼稚的想法是將元素存儲到在計算爲一個位置索引的陣列如下:
- 獲得元件的element_hash_code通過處理元素的 數據並生成一個整數值(「哈希」 元素的概念大致意味着「磨碎」)
- 使用簡單的模塊操作配給映射到陣列的範圍
所以這些可以通過數組或鏈表完成。
在Java HashSet
使用HashMap
內部
從源代碼
public HashSet() {
map = new HashMap<E,Object>();
}
0
HashMap和HashSet的(其基於HashMap中)的底層數據結構是散列表http://en.wikipedia.org/wiki/Hash_table。在HashMap源代碼中,它看起來像一個Entrys數組。
Entry<K,V>[] table;
...
static class Entry<K,V> implements Map.Entry<K,V> {
final K key;
V value;
Entry<K,V> next;
int hash;
...
相關問題
- 1. 'Set = new HashSet'或'HashSet = new Hashset'?
- 2. 奇怪HashSet的行爲
- 3. 迭代HashSet爲每個
- 4. 爲什麼HashSet被排序?
- 5. HashSet中的HashSet c#元素修改
- 6. 排序的HashSet
- 7. HashSet的整數
- 8. HashSet的實現
- 9. Collectors.toSet()和HashSet的
- 10. 從HashSet的
- 11. 定製的HashSet
- 12. 使用HashSet時的奇怪行爲
- 13. 爲什麼HashSet的區分0.0和-0.0
- 14. ConcurrentModificationException的在HashSet的
- 15. ArrayList中的Hashset或
- 16. 更改值HashSet的
- 17. JAVA HashSet的訂單
- 18. C#字典HashSet的
- 19. HashSet的包含子
- 20. C#hashSet的列表
- 21. 帶有HashSet的java.util.ConcurrentModificationException
- 22. 搜索中的HashSet
- 23. 將C#HashSet轉換爲F#集
- 24. addAll()中異常後仍爲空HashSet
- 25. HashSet不爲空,但不能迭代?
- 26. 刪除元素哦HashSet裏面爲
- 27. 是否可以爲HashSet設置泛型?
- 28. Hashset「值不能爲空」錯誤
- 29. 如何將HashSet轉換爲byte []?
- 30. HashSet「無法從元素類型Object轉換爲Integer」當期待整數HashSet
jdk源代碼可以通過openjdk項目公開獲得,爲什麼不爲自己找到答案? – jtahlborn
@jtahlborn它不是一個用JDK源代碼挖掘的遊戲,如果你可以玩,那你爲什麼不回答它? – Mihir
爲什麼投下來? – Mihir