ArrayList和LinkedList的用法区别? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 主要是数据结构上有差异(学校教的数据结构还记得么?),用法也就应该跟着其数据结构的特色来选用。顾名思义:ArrayList是以数组为基础的List实现,那么其随机访问性能很高,但插入某节点和删除某节点就不那么高效了;LinkedList是以双向链表为基础的List实现,那么其增加删除的性能很高,但随机定位访问就没那么好了。剩下的就是靠你自己根据场合来判断和选择。 ArrayList是数组实现的; 优点:寻找某个元素快; 缺点:添加删除慢LinkedList是链表实现的; 缺点:寻找某个元素慢; 优点:添加删除快他们都是线性表,API应该没什么大区别。 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 这一点要看实际情况的。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。 这一点我做了实验。在分别有200000条“记录”的ArrayList和LinkedList的首位插入20000条数据,LinkedList耗时约是ArrayList的20分之1。 API有详细说明,在结合数据结构、源码,其大概特点就或多或少知道些了 查API不是更好,他们都实现了List接口,但是又都向不同方向扩展了一些方法,自己查吗,学习是自己的 没事干的 多翻翻API 以及 看看JDK的源码 还是有好处的 别人没教你的都可以自己领悟 岂不更好? 听说ArrayList使用起来性能比LinkedList高,不过我也没试过,就是平时时候用ArrayList用的会多些 容量也有区别ArrayList最大的2g-1LinkedList则不限大小 用法几乎一样,就是LinkedList可以从后向前查找。即双向查找。 别慌,我给你个最朴实的说法吧~link是链表,array是数组,两个的差别: link【数据】【指针】...array是【数据】【数据】...使用上的区别就是link方便改动,因为:只要改变一个指针就行;但是不方便查找,因为:如果一直第一个的地址,要找第10000个数据,需要从经过【数据】【指针】--》【数据】【指针】一共9999次; array正好相反:改动的时候因为地址连续,所以需要for()然后把后面的地址依次改动(很费事儿);而查找很方便只需要在第一个基础上加上一定的数值,就可以找到某个元素了,因为它的地址是连续的~ 大致是这么个意思,实际上link还有增强版的哦~需要的话请回复~不需要请给分,呵呵~ 关于数组初始化的问题 菜鸟求助。JAVA编的求n!的阶层,用do while语句 Jcreator 4 太不爽了,每次都自动加注释,可以不可以消掉他 子类继承来的方法为何不访问自己的属性 java程序中获得当前计算机名 大家帮我看看,执行SQLServer存储过程问题 请问朋友:你认为哪本java图书比较适合你自己学习?? 对话窗问题 用循环建立一个VECTOR。里面放的是对象BOX,然后在下面的程序中要用的BOX的方法属性?出错,大仙指点。 linux中,.a文件怎么用java调用呀? 谁知道声明jacob的一个小问题??? 求各位高手帮忙,自己编写的java C/S小程序出了点问题
ArrayList是以数组为基础的List实现,那么其随机访问性能很高,但插入某节点和删除某节点就不那么高效了;
LinkedList是以双向链表为基础的List实现,那么其增加删除的性能很高,但随机定位访问就没那么好了。
剩下的就是靠你自己根据场合来判断和选择。
优点:寻找某个元素快;
缺点:添加删除慢
LinkedList是链表实现的;
缺点:寻找某个元素慢;
优点:添加删除快他们都是线性表,API应该没什么大区别。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
这一点要看实际情况的。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。 这一点我做了实验。在分别有200000条“记录”的ArrayList和LinkedList的首位插入20000条数据,LinkedList耗时约是ArrayList的20分之1。
ArrayList最大的2g-1
LinkedList则不限大小
link【数据】【指针】...array是【数据】【数据】...使用上的区别就是link方便改动,因为:只要改变一个指针就行;但是不方便查找,因为:如果一直第一个的地址,要找第10000个数据,需要从经过【数据】【指针】--》【数据】【指针】一共9999次;
array正好相反:改动的时候因为地址连续,所以需要for()然后把后面的地址依次改动(很费事儿);而查找很方便只需要在第一个基础上加上一定的数值,就可以找到某个元素了,因为它的地址是连续的~
大致是这么个意思,实际上link还有增强版的哦~需要的话请回复~不需要请给分,呵呵~