黑马程序员技术交流社区

标题: ArrayList与LinkList的探讨 [打印本页]

作者: 顾玲玉    时间: 2013-5-27 13:22
标题: ArrayList与LinkList的探讨
ArrayList:缺点:内存使用量要大一些,添加删除元素效率较低。元素随机访问的效率较高。
LinkedList:相反。
问:如果添加很多元素,是否应该先创建LinkedList,添加完后,转换成ArrayList,再遍历,经过转换后性能是否会提升。如果没必要的话,还是直接用哪种,性能好?
作者: ozt6719393    时间: 2013-5-27 13:54
把概念弄清楚,你就知道该用哪个了:
ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦
LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引  但是缺点就是查找非常麻烦 要丛第一个索引开始
作者: 381946250    时间: 2013-5-27 16:53
List是一个接口,ArrayList和LinkedList是两个实现类,他们实现的方式不一样,其实LinkedList才是真正的链表(如果不清楚什么是链表,需要了解一下相关数据结构的知识,这不是一两句话能说清楚的),而ArrayList是用数组实现的,它不是真正的链表,在初始化的时候它先对数组设置一个初始容量,当数组空间不够的时候,它会重新构建一个容量更大的数组,然后把先前的元素拷贝进去。
ArrayList和LinkedList本质上的区别就是数组和列表这两种数据结构的区别.
还有你问题,我觉得根据你的需求而定用哪个集合,如果增删多就用LinkedList,查询多就用ArrayList。
而且你提的那种说法有中画蛇添足的感觉,中间进行转换遍历也是需要消耗资源的。
作者: 顾玲玉    时间: 2013-5-27 17:01
381946250 发表于 2013-5-27 16:53
List是一个接口,ArrayList和LinkedList是两个实现类,他们实现的方式不一样,其实LinkedList才是真正的链 ...

这不是探讨嘛,谁都知道增加多用什么,查询多用什么,那要是增加的多查的也多呢,哪个是最好的选择。
作者: 381946250    时间: 2013-5-27 17:09
如果增删改查都多,开放中经常用的是ArrayList




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2