ArrayList和LinkedList的各自优点
2010-04-03 14:00
190 查看
java编程中我们用最多的几个类可以就是String,ArrayList,HashMap了.
特别是ArrayList我们几乎无人不知,甚至有乱用的嫌疑了.
我们来看看ArrayList和LinkedList的区别.
故名思意ArrayList是数组表,LinkedList是链接表.
ArrayList的所有数据是在同一个地址上,而LinkedList的每个数据都拥有自己的地址.
我们来比较一下常用的数据的插入,数据的删除,数据的更新,数据查询.
数据插入
:比如在i节点插入一个新数据
ArrayList:循环到i节点,插入一个新数据,然后把i节点后面的所有的数据的index加1. ->操作多
LinkedList:循环到i节点,把前一个节点的后续链接到新数据,然后把新数据链接到后一个数据就可以了. ->操作少
结论:平均效率LinkedList要好.
数据删除
:比如删除i节点数据
ArrayList:循环到i节点,然后把i节点后面的所有的数据的index减1. ->操作多
LinkedList:循环到i节点,把前一个节点的后续链接到i节点的后一个数据就可以了.
->操作少
结论:平均效率LinkedList要好.
数据查询
:比如查询i节点数据
ArrayList:循环到i节点. ->操作少
LinkedList:循环到i节点.
->操作少,但由于每个数据的地址不一样,查询比如
ArrayList慢.
结论:平均效率
ArrayList要好.
数据更新
:比如更新i节点数据
ArrayList:循环到i节点,把数据更新. ->操作少
LinkedList:循环到i节点,把前数据更新.
->操作少,但由于查询速度没有
ArrayList好,所有效率没有
ArrayList好.
结论:平均效率ArrayList要好.
这样我们就可以看到各有优点.
如果查询操作较多ArrayList的效果更好.如果删除,插入较多LinkedList的效果较好.具体怎么用还看具体的需求.
特别是ArrayList我们几乎无人不知,甚至有乱用的嫌疑了.
我们来看看ArrayList和LinkedList的区别.
故名思意ArrayList是数组表,LinkedList是链接表.
ArrayList的所有数据是在同一个地址上,而LinkedList的每个数据都拥有自己的地址.
我们来比较一下常用的数据的插入,数据的删除,数据的更新,数据查询.
数据插入
:比如在i节点插入一个新数据
ArrayList:循环到i节点,插入一个新数据,然后把i节点后面的所有的数据的index加1. ->操作多
LinkedList:循环到i节点,把前一个节点的后续链接到新数据,然后把新数据链接到后一个数据就可以了. ->操作少
结论:平均效率LinkedList要好.
数据删除
:比如删除i节点数据
ArrayList:循环到i节点,然后把i节点后面的所有的数据的index减1. ->操作多
LinkedList:循环到i节点,把前一个节点的后续链接到i节点的后一个数据就可以了.
->操作少
结论:平均效率LinkedList要好.
数据查询
:比如查询i节点数据
ArrayList:循环到i节点. ->操作少
LinkedList:循环到i节点.
->操作少,但由于每个数据的地址不一样,查询比如
ArrayList慢.
结论:平均效率
ArrayList要好.
数据更新
:比如更新i节点数据
ArrayList:循环到i节点,把数据更新. ->操作少
LinkedList:循环到i节点,把前数据更新.
->操作少,但由于查询速度没有
ArrayList好,所有效率没有
ArrayList好.
结论:平均效率ArrayList要好.
这样我们就可以看到各有优点.
如果查询操作较多ArrayList的效果更好.如果删除,插入较多LinkedList的效果较好.具体怎么用还看具体的需求.
相关文章推荐
- ArrayList、List<T>、HashSet<T>、LinkedList<T>各自优点和缺点,Dictionary<K,V>的内部存储数据方式有什么特殊的?
- ArrayList 和LinkedList各自的特点是什么?
- 【转】LinkedList、ArrayList各自的使用场景分析
- HashMap,Hashset,ArrayList以及LinkedList集合的区别,以及各自的用法
- ArrayList 和LinkedList各自的特点是什么?
- java集合类,List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet),Map集合比较
- Java基础面试题4-描述一下ArrayList和LinkedList各自实现和区别
- ArrayList 和LinkedList各自的特点是什么?
- java集合中ArrayList和LinkedList的各自特性
- ArrayList 和LinkedList各自的特点是什么?
- ArrayList和LinkedList各自实现和区别
- Java开发之ArrayList 和LinkedList各自的特点是什么
- (9) java ---- 集合框架图 ArrayList,LinkedList,Vector各自的性能特点及区别
- HashMap,Hashset,ArrayList以及LinkedList集合的区别,以及各自的用法
- 通过编码分别测试ArrayList 和 LinkedList 添加、删除对象时的耗时情况(精确到纳秒),并总结出以上两种集合的数据结构的不同之处。
- ArrayList和LinkedList的深层次理解
- ArrayList,LinkedList, Vector三者的区别
- Java中ArrayList和LinkedList区别
- ArrayList、LinkedList以及Vector的基础函数与区别
- ArrayList和LinkedList区别