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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在java 中,List是个接口,那实现List接口的类有哪些,它们之间有什么具体的区别?

6 个回复

倒序浏览
ArrayList 是使用数组方式存储数据的,插入速度慢。LinkedList是使用双向链表实现存储数据的,插入速度快。
回复 使用道具 举报
路过进来看看
回复 使用道具 举报
List接口的实现类有ArrayList,,LinkedList,和Vector。
1. 从内部是实现机制上讲。
(1) ArrayList和Vector的内部实现机制:他们是用“数组”来存储对象的。
     这种机制的特点:查找速度快(利用数组索引查找),但增删效率和“链表”相比偏低。
(2) LinkedList的内部实现机制:LinkedList是用“链表”来存储对象的。
     这种机制的特点:查找速度慢,但增删效率和“数组”相比偏高。

2. 对比ArrayList和Vector
(1)相同点:从内部实现机制来讲,ArrayList和Vector都是使用数组(Array)来控制集合中的对象。当你向这两
    种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度,他们都需要扩展内部数组的长度。
(2)不同点:
    ① 同步性上的区别
     A). Vector是同步的,这个类中的一些防范保证了Vector中的对象是线程安全的。
     B). ArrayList则是异步的,因此,ArrayList中的对象并不是线程安全的。   
    ② 数据增长上的区别
     A). Vector在默认的情况下,自动增长原来一倍的数组长度,
     B). ArrayList是原来的50%,
所以, 如果数据量很大,又要线程安全,则使用Vector。

希望我的回答对楼主有用。
回复 使用道具 举报
List的实现类可以有重复元素
回复 使用道具 举报
Rodgers 发表于 2014-7-27 07:37
List接口的实现类有ArrayList,,LinkedList,和Vector。
1. 从内部是实现机制上讲。
(1) ArrayList和Vector ...

顶一个,总结的挺好的,受用
回复 使用道具 举报
liuck 初级黑马 2014-7-27 18:30:19
7#
其实最快捷的方法就是去JDK文档,看一下,每个实现类的介绍,对您的理解会有帮助!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马