A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 顾玲玉 中级黑马   /  2013-5-27 13:22  /  1801 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ArrayList:缺点:内存使用量要大一些,添加删除元素效率较低。元素随机访问的效率较高。
LinkedList:相反。
问:如果添加很多元素,是否应该先创建LinkedList,添加完后,转换成ArrayList,再遍历,经过转换后性能是否会提升。如果没必要的话,还是直接用哪种,性能好?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
把概念弄清楚,你就知道该用哪个了:
ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦
LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引  但是缺点就是查找非常麻烦 要丛第一个索引开始

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
List是一个接口,ArrayList和LinkedList是两个实现类,他们实现的方式不一样,其实LinkedList才是真正的链表(如果不清楚什么是链表,需要了解一下相关数据结构的知识,这不是一两句话能说清楚的),而ArrayList是用数组实现的,它不是真正的链表,在初始化的时候它先对数组设置一个初始容量,当数组空间不够的时候,它会重新构建一个容量更大的数组,然后把先前的元素拷贝进去。
ArrayList和LinkedList本质上的区别就是数组和列表这两种数据结构的区别.
还有你问题,我觉得根据你的需求而定用哪个集合,如果增删多就用LinkedList,查询多就用ArrayList。
而且你提的那种说法有中画蛇添足的感觉,中间进行转换遍历也是需要消耗资源的。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
381946250 发表于 2013-5-27 16:53
List是一个接口,ArrayList和LinkedList是两个实现类,他们实现的方式不一样,其实LinkedList才是真正的链 ...

这不是探讨嘛,谁都知道增加多用什么,查询多用什么,那要是增加的多查的也多呢,哪个是最好的选择。
回复 使用道具 举报
如果增删改查都多,开放中经常用的是ArrayList
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马