ArrayList和LinkedList的用法区别?

wcz12345678 2012-03-05 08:03:10
如题
...全文
179 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieyizhuo 2012-03-06
  • 打赏
  • 举报
回复
别慌,我给你个最朴实的说法吧~link是链表,array是数组,两个的差别:
link【数据】【指针】...array是【数据】【数据】...使用上的区别就是link方便改动,因为:只要改变一个指针就行;但是不方便查找,因为:如果一直第一个的地址,要找第10000个数据,需要从经过【数据】【指针】--》【数据】【指针】一共9999次;
array正好相反:改动的时候因为地址连续,所以需要for()然后把后面的地址依次改动(很费事儿);而查找很方便只需要在第一个基础上加上一定的数值,就可以找到某个元素了,因为它的地址是连续的~
大致是这么个意思,实际上link还有增强版的哦~需要的话请回复~不需要请给分,呵呵~
jake512 2012-03-06
  • 打赏
  • 举报
回复
用法几乎一样,就是LinkedList可以从后向前查找。即双向查找。
bawgiitx 2012-03-06
  • 打赏
  • 举报
回复
容量也有区别
ArrayList最大的2g-1
LinkedList则不限大小
Acesidonu 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ihrthk 的回复:]

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
这一点要看实际情况的。若只对单条数据插入或删除,ArrayL……
[/Quote]
++
lxy15329 2012-03-05
  • 打赏
  • 举报
回复
听说ArrayList使用起来性能比LinkedList高,不过我也没试过,就是平时时候用ArrayList用的会多些
jiakai0419 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ldh911 的回复:]

主要是数据结构上有差异(学校教的数据结构还记得么?),用法也就应该跟着其数据结构的特色来选用。

顾名思义:
ArrayList是以数组为基础的List实现,那么其随机访问性能很高,但插入某节点和删除某节点就不那么高效了;
LinkedList是以双向链表为基础的List实现,那么其增加删除的性能很高,但随机定位访问就没那么好了。


剩下的就是靠你自己根据场合来判断和选择。
[/Quote]

+1
Ajava攻城师 2012-03-05
  • 打赏
  • 举报
回复
没事干的 多翻翻API 以及 看看JDK的源码 还是有好处的 别人没教你的都可以自己领悟 岂不更好?
Chq9034 2012-03-05
  • 打赏
  • 举报
回复
查API不是更好,他们都实现了List接口,但是又都向不同方向扩展了一些方法,自己查吗,学习是自己的
Ajava攻城师 2012-03-05
  • 打赏
  • 举报
回复
API有详细说明,在结合数据结构、源码,其大概特点就或多或少知道些了
ihrthk 2012-03-05
  • 打赏
  • 举报
回复
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。
xiazdong 2012-03-05
  • 打赏
  • 举报
回复
ArrayList是数组实现的;
优点:寻找某个元素快;
缺点:添加删除慢
LinkedList是链表实现的;
缺点:寻找某个元素慢;
优点:添加删除快

他们都是线性表,API应该没什么大区别。
MiceRice 2012-03-05
  • 打赏
  • 举报
回复
主要是数据结构上有差异(学校教的数据结构还记得么?),用法也就应该跟着其数据结构的特色来选用。

顾名思义:
ArrayList是以数组为基础的List实现,那么其随机访问性能很高,但插入某节点和删除某节点就不那么高效了;
LinkedList是以双向链表为基础的List实现,那么其增加删除的性能很高,但随机定位访问就没那么好了。


剩下的就是靠你自己根据场合来判断和选择。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧