猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
ArrayList和Vector有什么区别?
两种数据结构
ArrayList
和
Vector
之间有什么区别,应在哪里使用它们?
POPMUISE
浏览 593
回答 3
3回答
芜湖不芜
如文档所述,a Vector和an ArrayList几乎相等。不同之处在于对a的访问Vector是同步的,而对a的访问ArrayList则不同步。这意味着一次只能有一个线程可以在一个线程上调用方法Vector,并且获取锁的开销很小。如果使用ArrayList,则不是这种情况。通常,您将需要使用ArrayList;; 在单线程情况下,这是一个更好的选择;在多线程情况下,您可以更好地控制锁定。要允许并发读取吗?精细。是否想对十次写入执行一次同步?还可以 它确实需要在您的末端多一点照顾,但可能正是您想要的。另请注意,如果您有ArrayList,则可以使用Collections.synchronizedList函数来创建同步列表,从而使您等效于Vector。
0
0
0
慕盖茨4494581
Vector和ArrayList之间有2个主要区别。向量默认情况下是同步的,而ArrayList不同步。注意:通过将arraylist对象传递给Collections.synchronizedList()方法,可以使ArrayList也同步。同步方式:可以与多个线程一起使用,而没有任何副作用。当空间不足以容纳新元素时,ArrayLists将以先前大小的50%增长,而当没有空间容纳新传入元素时,Vector将以先前大小的100%增长。除此之外,就编程工作而言,它们之间还存在一些实际差异:为了从Vector获得特定位置的元素,我们使用elementAt(int index)函数。此函数名称很长。代替ArrayList,我们有了get(int index),它很容易记住和使用。类似地,要使用Vector中的新元素替换现有元素,我们使用setElementAt()方法,该方法又很长,可能会刺激程序员重复使用。代替此ArrayList具有添加(INT指数,对象)方法,该方法很容易使用和记忆。像这样,它们在ArrayList中对程序员更友好且易于使用。什么时候使用哪个?尝试避免完全使用Vector。ArrayList可以完成Vector可以完成的所有工作。更多信息ArrayList默认情况下不同步。如果需要,可以使用Collections util类在需要时进行同步。ArrayList具有易于记忆和使用的函数名称。注意:即使arraylist增长了100%,您也可以通过surecapacity()方法来避免这种情况,以确保您在初始阶段本身就分配了足够的内存。希望能帮助到你。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续