数据结构_哈希表

哈希表: 1、JDK8之前,底层采用数组+链表实现,可以说是一个元素为链表的数组 2、JDK8之后,在长度比较长的时候,底层实现了优化,这个优化我们暂时不学

哈希表的位置是从0开始,到15结束

假如一个哈希值为99162322,它怎么存储到哈希表呢,很简单,将这个数对16取余,比如这里取余之后是2,就把这个哈希值存储到哈希表为2的位置

假如又有一个哈希值为113318802,它取余之后也是2,上面那个也是2,所以2这个位置已经有元素,那这个怎么存储呢,如下: 哈希表中的同一个位置来说,后面来的元素会跟已存在的元素进行比较,首先比较哈希值,若两者哈希值不相同,那后面来的元素就直接在2的位置存储进来, 如果出现比较两者的哈希值相同时,就比较元素内容,比如"通话"和"重地"的哈希值相同,那就比较"通话"和"重地"的内容,很明显这两者的内容不同,就存储进来,如果出现比较两者的内容也相同时,比如"world"和"world",就判定位重复元素,即后面来的那个"world"就不存储。所以哈希表中的元素总是唯一的