你会发现主要的过程还是根据key得到hash值,根据hash值定位桶的下标,继续遍历链表,寻找与之对应的key,直播,找到了就返回对应的value。由此可以得出:在不发生hash碰撞的情况下,查找的时间复杂度为O(1)。因为不发生Hash碰撞,所要找的元素就是对应桶里的唯一元素,而桶的下标是根据key的hash值计算直接得到的。 小结 数组存储的特点:区间是连续的,占用内存严重,故空间复杂的很大。寻址容易,插入和删除困难。 链表存储特点:区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。寻址困难,插入和删除容易。 哈希表就是结合了两者特性,做出一种寻址容易,插入删除也容易的数据结构。 本文作者:涂阳川(点融黑帮),从事Android开发。smile to the world! (责任编辑:本港台直播) |