性能优化——HashMap的设计与优化

常用的数据结构
 
我在 05 讲分享 List 集合类的时候,讲过 ArrayList 是基于数组的数据结构实现的, LinkedList 是基于链表的数据结构实现的,而我今天要讲的 HashMap 是基于哈希表的数据结构实现的。我们不妨一起来温习下常用的数据结构,这样也有助于你更好地理解后面地 内容。
 
数组 :采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为 O(1), 但在数组中间以及头部插入数据时,需要复制移动后面的元素。
 
链表 :一种在物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的。
 
链表由一系列结点(链表中每一个元素)组成,结点可以在运行时动态生成。每个结点都包 含“存储数据单元的数据域”和“存储下一个结点地址的指针域”这两个部分。
 
由于链表不用必须按顺序存储,所以链表在插入的时候可以达到 O(1) 的复杂度,但查找一 个结点或者访问特定编号的结点需要 O(n) 的时间。
 
哈希表

猜你喜欢

转载自blog.csdn.net/qq_36589864/article/details/108095497