什么是散列表?

①为什么要用散列表?

数组的特点是:寻址容易,插入和删除困难;

链表的特点是:寻址困难,插入和删除容易;

那么能不能综合两者的特性,做出一种寻址容易,插入和删除也容易的数据结构?答案是肯定的,这就是我们要了解的散列表,也叫哈希表

 

②什么是散列表?

散列表也叫hash表 ,是根据关键码值而进行直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射也叫散列函数,存放记录的数组叫散列表。

给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则成表M为Hash表,函数f(key)为哈希函数。

 

 ③散列表有哪些特点?

HashMap具有优秀的查找性能。根据key找到value,性能最好的算法!(没有之一)。无论数据多少,查找方法的性能始终如一!为了实现根据key告诉找到value,散列表提供了高性能查找算法。利用散列数组算法进行散列查找,性能很好。无论数据量有多少,都会在一个固定的时间,找回结果!甚至是在亿级别数据量上进行查找!凡是软件中需要查找根据key查找到value时,一定使用散列表。

 

④使用散列表的注意事项:

①key-value成对数据添加到散列表

②key不可以重复,value可以重复

③key-value规定为一个条目(Entry)

 ④散列表中散列数组的大小称为容量

⑤key-value数量称为size

⑥size/容量称为加载因子,要小于75%,如果大于75%,会自动扩容

⑦自动扩容会影响put添加性能,可以事先通过设置初始容量,提高put的性能

⑧散列表的默认初始容量是16,默认加载因子是75%,建议不要修改加载因子

 

 

 

posted @ 2018-06-29 18:02  筱筱的春天  阅读(2327)  评论(0编辑  收藏  举报