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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qucc 初级黑马   /  2014-5-23 14:05  /  11428 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

说出ArrayList,Vector, LinkedList的存储性能和特性

2 个回复

倒序浏览
ArrayList类、Vector类、LinkedList类 都是可伸缩的数组,就是可以动态改变长度的数组。 ArrayList类是jdk1.1后出现的,在内存中是队列形式存储,适合查找。他不是线程安全的。 Vector类是较老的数组列表,他是线程安全的。 LinkedList类是链表结构的数组,它适合增删改的操作,但与ArrayList相比,查询效率较低。 实际应用中:ArrayList是最常用的。  HashMap类,与之对应的有一个HashTable类,这两个类的区别: HashMap是新的类,他不是线程安全的。 HashTable是旧的类,他是线程安全的。 他们的共同点是:存储一个键值对形式的数据。并根据键来增删改查。键不能重复!  以上是我自己总结的。希望能帮到你的忙
回复 使用道具 举报
ArrayList底层使用的是数组存储的,存储有序,如果底层默认数组空间使用完毕,会创建一个新的数组,长度为原数组的1.5倍。由于采用数组存储,查找速度快,但是不利于频繁的增删操作。
Vector和ArrayList类似,新数组会增加一倍的长度。并且读取不是很爽,方法名称太长了。所以很少使用了。
LinkedList底层采用链表存储元素,所以对于频繁的增删操作效率很高。

其实主要还是看具体的应用,如果数据需要经常遍历,很少增删的话,就使用ArrayList,否则就使用LinkedList。

希望对你有所帮助。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马