黑马程序员技术交流社区

标题: 说出ArrayList,Vector, LinkedList的存储性能和特性 [打印本页]

作者: qucc    时间: 2014-5-23 14:05
标题: 说出ArrayList,Vector, LinkedList的存储性能和特性
说出ArrayList,Vector, LinkedList的存储性能和特性

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

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

希望对你有所帮助。




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