我们在上文中给大家简单介绍了数据结构递归算法的一些基础知识,而本文就继续来说说,数据结构中数组结构的概念与应用。
一、概念
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。
关键词:
1.线性表(LinearList),线性表就是数据排成像一条线一样的结构。
相对的是,非线性表
2.连续的内存空间和相同类型的数据。
有这两个限制,有一个特性:“随机访问”。通过内存空间地址来获取数组元素。
二、警惕数组的访问越界问题
以C语言为例,只要不是访问受限的内存,所有的内存空间都是可以自由访问的。
以Java、C#为例,数组越界时会抛出异常。
三、容器能否完全替换数组
以Java的ArrayLisit为例(同比C#的List),大的优势是可以将很多数组操作的细节封装起来,并且支持动态扩容。
注意:动态扩容涉及内存申请和数据搬移,如果事先能确定需要存储的灵气大小,好在创建时就指定数据大小。
相比于容器,数组是否无用武之地?
1.Java的ArrayList无法存储基本类型,会涉及到Autoboxing、Unboxing,对性能有一定的消耗,如果关注性能,选择数组。
2.如果数据大小已知,并且对数据的操作非常简单,可直接使用数组。
3.表示多维数组时,用数组往往会更加直观。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。