list和vector的区别
答案:2 悬赏:0
解决时间 2021-02-19 12:56
- 提问者网友:冷天寄予
- 2021-02-19 02:26
list和vector的区别
最佳答案
- 二级知识专家网友:颜值超标
- 2021-02-19 03:05
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
首先看上面的结构,Collection是最基本的集合接口。
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。
ArrayList类
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList也是非同步的(unsynchronized)。
Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的 Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException。
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
首先看上面的结构,Collection是最基本的集合接口。
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。
ArrayList类
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList也是非同步的(unsynchronized)。
Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的 Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException。
全部回答
- 1楼网友:夢想黑洞
- 2021-02-19 04:37
vector适用:对象数量变化少,简单对象,随机访问元素频繁
list适用:对象数量变化大,对象复杂,插入和删除频繁
最大的区别是,list是双向的,而vector是单向的。list和vector的区别会分开的说明
1、vector为存储的对象分配一块连续的地址空间,因此对vector中的元素随机访问效率很高。
2、在vecotor中插入或者删除某个元素,需要将现有元素进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大,因为拷贝对象要调用拷贝构造函数。
3、对于简单的小对象,vector的效率优于list。vector在每次扩张容量的时候,将容量扩展2倍,这样对于小对象来说,效率是很高的。
4、list中的对象是离散存储的,随机访问某个元素需要遍历list。在list中插入元素,尤其是在首尾插入元素,效率很高,只需要改变元素的指针。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |