`
zenghuiss
  • 浏览: 26027 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Vector和ArrayList的相同和不同点

    博客分类:
  • Java
 
阅读更多
作为一个刚接触java的人来说,一开始接触到Collection,肯定会听到两个集合类Vector和ArrayList,

它们的共同点如下:

1.都是容量大小动态可变的数组。
2.都可以快速随机的内部元素进行访问。


区别:

1.Vector是线程安全的,ArrayList不是。线程安全意味着一个时间点只有一个线程可以对这个对象进行操作,Vector之所以是线程安全的是因为它所有的方法都加了synchronized关键字。

2.性能。因为Vector的线程安全所以它较之于ArrayList会相对慢,假设我们有两个线程同时访问Vector的对象的某个方法,其中一个要等另外一个处理完释放掉锁,才能进入,而ArrayList则没有这方面的限制,两个线程可以同时对一个方法进行访问。

3.自增长的方式.Vector默认的正常一般数组的长度,而ArrayList默认是50%,ArraryList默认长度是10,当超出它的长度范围,会创建一个新的数组,同时将旧数组的全部内容copy到新的数组上面。

4.在Vector里面有个方法可以对其增长的大小进行设定
public synchronized void setSize(int i){....};

而ArraryList是没有这样的方法的。

5.Vector是唯一一个既有Enumeration,又有Iterator进行遍历的类,而ArrayList只有Iterator.

6.Vector是java创立以来就存在的,而ArrayList是从1.2才引入的。
分享到:
评论

相关推荐

    java ArrayList和Vector的区别详解

    首先,让我们来看看ArrayList和Vector的相同点: 1. **继承关系**:两者都继承自AbstractList,并且实现了List接口,以及Serializable和Cloneable接口。 2. **底层实现**:ArrayList和Vector的基础结构都是基于数组...

    jdk源码阅读一:ArrayList

    - **构造函数**:ArrayList提供了几种不同的构造函数,以满足不同的初始化需求。 - `ArrayList()`:创建一个空的ArrayList,初始容量为0。在这种情况下,ArrayList将使用一个特殊的空数组`EMPTY_ELEMENTDATA`作为其...

    Vector.zip

    这种格式的优点是放大时不会失真,因为它是用直线和曲线(由点和向量控制)定义的。向量图形广泛应用于标志设计、插图和网页设计等领域,因为它们可以适应各种输出尺寸而保持清晰。 综上所述,“Vector”在IT领域内...

    阿里巴巴Java方向面试题汇总(含答案).pdf

    Vector 和 ArrayList 都是以类似数组的形式存储在内存中,LinkedList 则以链表的形式进行存储。List 中的元素有序、允许有重复的元素,Set 中的元素无序、不允许有重复元素。Vector 线程同步,ArrayList 和 ...

    java面试笔记.pdf

    1. Vector和ArrayList的区别: - Vector是同步的,适用于线程安全的环境,但因为同步的实现会导致性能损耗。 - Vector在扩容时将容量翻倍,而ArrayList的扩容方式是增加约1.5倍的容量,这使得ArrayList在节约内存...

    Java笔试题

    5. JSP 和 Servlet 的相同点和不同点,以及联系: - 相同点:都是Java Web开发中的组件,用于处理HTTP请求。 - 不同点:JSP侧重视图展示,Servlet侧重逻辑处理。JSP最终会被编译成Servlet执行。 - 联系:在同一个...

    java阿里巴巴常用面试题

    - **ArrayList** 和 **Vector** 在线程安全方面不同,Vector默认同步,ArrayList默认不同步。在数据增长时,ArrayList增长率为50%,而Vector增长率为一倍。 - 对于ArrayList和Vector,检索和末尾操作效率相同,...

    面试军火库-花琪尧.pdf

    * Vector 和 ArrayList 基本一样,区别是 Vector 使用了 synchronized 方法,可以说其实线程安全的 ArrayList,所以其特点和 ArrayList 相同,但是其效率和 ArrayList 相比较低。 * LinkedList 底层数据结构为带头...

    Java集合面试题汇总.pdf

    此外,Vector与ArrayList类似,但线程安全,而HashSet和TreeSet分别利用哈希表和红黑树实现,保证了不同级别的查找效率。 集合框架的一个重要特性是容量自增长,这意味着当集合元素超过当前容量时,容器会自动扩大...

    Java 72道面试题和答案.docx

    - **List**:有序且允许重复元素的集合,如ArrayList、LinkedList和Vector。ArrayList基于Object数组,适合快速随机访问;LinkedList是双向循环链表,适合频繁添加和删除元素;Vector与ArrayList类似,但它是线程...

    Java 集合面试稳稳的.pdf

    链表法是将所有哈希值相同的元素存放在一个链表中,由于查找主要在同义词链中进行,因此适合频繁插入和删除的场景。 面试中可能会问到的还有ArrayList与LinkedList的区别、HashMap的扩容机制、HashMap在JDK 1.7和...

    集合框架面试题.pdf

    在面试中,了解这些集合类的特性和区别是相当重要的,以下是集合框架中关于ArrayList和Vector的关键知识点。 首先,ArrayList和Vector都实现了List接口,并且都是有序集合。它们存储元素的位置是有序的,类似于数组...

    中科软笔试题目密密麻麻

    Vector 和 ArrayList 都是Java 的集合类,但是它们的实现机理不同。Vector 是线程同步的,而 ArrayList 不是。 14.运行时异常 运行时异常是指在程序运行时发生的异常,包括: * NullPointerException * ...

    求职宝典-Java 基础面试题

    Vector与ArrayList类似,但它是线程安全的,代价是访问速度慢,且扩容策略与ArrayList不同,扩容时Vector会翻倍,ArrayList则增加50%。 此外,Collections.sort和Arrays.sort的比较也是面试中的常见问题。两者在...

    玉宝必背锦集之---葵花宝典.pdf

    本文档涉及到Java编程语言及其它技术的面试常见问题和答案,包括面向对象的特征、Java基础数据类型、异常处理、Servlet生命周期、数据结构比较(如ArrayList、Vector、LinkedList)、EJB技术及其组件等。详细知识点...

    JAVA程序员笔试面试题汇总及答案.pdf

    ArrayList 和 Vector 都是 JAVA 中的集合框架,但它们有着不同的特点。ArrayList 是非线程安全的,不是同步的,而 Vector 是线程安全的,是同步的。在数据增长方面,ArrayList 默认增长为原来的一半,而 Vector 默认...

    java面试题,java框架面试题

    Vector 和 ArrayList 都支持可随需要而增长的动态数组。能够动态的增加或减少其大小。主要不同之处在于同步。 本文总结了 Java 面试题的基础知识、Java 框架、Java 集合框架等方面的知识点,帮助读者快速掌握 Java ...

    java面试个人经典收藏题.doc

    - 不同点:Lock提供更细粒度的控制,手动释放锁,且必须在`finally`块中释放,性能通常优于`synchronized`。 13. **EJB规范禁止的操作**: - 禁止操作线程和线程API。 - 禁止使用静态方法。 - 其他还包括资源...

    java面试精选72题

    ArrayList和Vector都是基于数组的,Vector是线程安全的,而ArrayList不是。LinkedList基于双向链表,其插入和删除操作速度快,但在按索引访问元素时比ArrayList和Vector慢。 5. Collection和Collections的区别。...

Global site tag (gtag.js) - Google Analytics