链表和数组实际使用时的优缺点
2020-07-20 本文已影响0人
TioSun
数组的优点
- 简单易用
- 内存空间连续所以可以借助cpu的缓存机制预读数据,极大提升访问效率
数组的缺点
- 内存空间连续使得每次分配内存的时候就必须分配给它一块连续的内存空间,当连续的内存空间不足时就会导致oom
- 声明的数组不够使用时,就需要再申请一个更大的内存空间,把原数据拷贝过去,会很耗时。
链表的优点
- 链表的扩容非常简单,只要再构建一个node然后和链表连接起来就可以了
链表的缺点
- 由于链表的内存空间是零散分布的,可能没办法很好的使用cpu预读
- 链表中的每个节点都会消耗额外的空间去存储一份指向下一个节点的指针,所以单节点数据存储而言,链表比数组更耗内存。