对于ArrayList,底层dataStructure是数组;对于LinkedList,它是链接对象;对于HashMap或HashTable,它可以是LinkedList或树的数组,HashSet中使用的数据结构是什么
发布于 2013-07-10 12:15:59
根据the Javadoc的说法,HashSet的支持数据结构是HashMap。
JDK 1.6代码验证了这一点:
public HashSet() {
map = new HashMap<>();
}发布于 2013-07-10 12:18:57
哈希的天真想法是将一个元素存储到一个数组中的位置索引,计算如下:
因此,这些可以通过数组或链表来完成。
在java中,HashSet在内部使用HashMap。
从源代码
public HashSet() {
map = new HashMap<E,Object>();
}发布于 2013-07-10 12:15:50
HashSet在内部使用HashMap来存储数据。我相信HashMap是一个Entry对象数组。
了解HashMap内部结构的相关帖子:
https://stackoverflow.com/questions/11596549/how-does-javas-hashmap-work-internally
https://stackoverflow.com/questions/17562325
复制相似问题