数据结构(数组)的特点以及优缺点
数组这种数据结构是我们在java开发中非常常见的。所以借用这篇文章来分析数组的特点以及他的优缺点。
特点一
数组的读取和更改数据的效率是所有数据据结构中最高的。
数组为什么是数据结构中读取和更改中的效率最高?
本人认为有以下几点
**数组中每个元素都有他自己的内存地址与下标索引,而且每个元素在空间的占用都是相等的(因为都是同类型的数据)。而且数组在内存中是以连续的形态出现。
在我们随机读取,查看,修改的时候,java虚拟机就会通过我们提供的下标来经过公式来计算出此下标对应的内存地址。
从而直接通过内存地址来指向对应的元素。这就是数组查询修改数据效率高的原因。
数组的缺点 数组不适合进行大量数据的存储。
** 因为数组在内存中很难找到连续且大的内存空间 **
缺点三 数组的随机删除和插入的效率低
因为数组进行任意索引的删除和插入时,索引后面的元素都会发生集体左移或右移的行为(最大索引对应的元素除外)
缺点 四 数组的空间大小固定没办法扩容
数组的空间是提前定义好的,如果想进行数组扩容的话,只能调用 System.arraycopy(); 向定义好的大数组进行拷贝
而解决这个问题的方法就是使用链表。