java中线性表的两种实现方式区别

来源:互联网 发布:网络棋牌频道直播象棋 编辑:程序博客网 时间:2024/06/14 17:15

注意:线性表的两种实现->顺序实现和链式实现

线性表的两种实现

 

顺序表

链表

空间性能

顺序表的存储空间是静态分布的,需要一个固定的数组,总有部分数组元素要浪费

链表的存储空间是动态分布,因此不会有空间被浪费。但由于链表需要额外的空间来为每个节点保存指针,因此也要牺牲一部分空间。

时间性能

顺序表中的元素的逻辑顺序和物理存储顺序保持一致,而且支持随机存取。因此顺序表在查找,读取时候效率很快。

链表采用链式结构来保存表内的元素,因此在插入、删除的时候效率比较高。

线性表本质上是一个充当容器的工具类,当程序有一组结构相同的数据元素需要保存的时候,就可以考虑使用线性表来保存。

Java中经常使用的线性表是list,Java中list接口就是代表线性表,线性表中常见的两种实现分别是ArrayList和LinkedList,其中LinkedList是一个双向链表,而ArrayList是动态数组来实现。

根据上面的区别很容易得到下面的结论:

ArrayList实现原理是数组,有点在于遍历查找速度很快,但是对于插入和删除效率不高。

LinkedList的实现就是链表遍历和查找速度不高,但是插入和删除的效率很高。


0 0
原创粉丝点击