数组

2021-01-29  本文已影响0人  温驭臣

1,什么是数组?

数组(Array)是一种线性表数据结构,它是一组连续的内存空间,来存储一组具有相同类型的数据。这里有两个关键点:1 线性表,2 连续的内存空间和相同类型的数据。

        线性表:就是数据排成一条线一样的结构,线性表上的数据只有前和后两个方向。数组,链表,队列,栈都是线性表结构。和它对立的叫非线性表,比如二叉树,图,堆等。在非线性表中不是简单的前后关系。

        连续的内存空间和相同类型的数据:正因为有这两个限制所以数组才有一个杀手锏叫做“随机访问”,缺点也很明显就是删除和插入数据时效率不高,因为为了保证连续性,需要做大量的数据搬移工作。

2,容器能否完全替代数组?

容器比如ArrayList,它是把数组封装了起来还支持动态扩容,它的存储空间不够时,自动申请一块新的大内存空间然后先把原来的数据复制过去,在进行数据插入。缺点就是数据特别大时需要不断的扩容导致效率低,这时最好给它指定一个数据大小来省去很多次的内存申请和数据搬移操作。数组还有一个优势就是代码比较直观。

上一篇下一篇

猜你喜欢

热点阅读