哈希表
Hashtable也叫散列表,速度快。有很多种结构,最流行的是顺序表+链表,主结构是顺序表
1、哈希表是如何添加数据的:
1、计算哈希吗(调用hashCode(),结果是一个int值,整数的哈希吗取自身)
2、计算在哈希表中储存的位置y=k(x)=x%11,x:哈希吗,k(x)函数,y在哈希表中存储的位置。
3、存入哈希表
- 情况一:一次添加成功
- 情况二:多次添加成功(出现了冲突,调用equals()和对应链表的元素比较,经过一次或多次比较后,结果都是false,创建新节点,存入数据,并加入链表末尾)
- 情况三:不添加(出现了冲突,调用equals()和对应链表的元素比较,经过一次或多次比较后,结果true,表明冲突,不添加)
结论:添加数据三步即可(不考虑冲突),唯一,无序。
2、哈希表是如何查询数据的
和添加数据的过程是相同的 - 情况一:一次找到 23 86 76
- 情况二:多次找到67 56 78
- 情况三:找不到100 200