zoukankan      html  css  js  c++  java
  • Difference Between Arraylist And Vector : Core Java Interview Collection Question

    Difference between Vector and Arraylist is the most common  Core Java Interview question you will come across in Collection .  This question is mostly used as a start up question by the Interviewers before testing deep  roots of  the Collection  .
    Vector , ArrayList classes are implemented using dynamically resizable  array providing fast random access and fast list traversal very much like using an ordinary array . ArrayList  support dynamic arrays that can grow as needed that is ArrayList can be dynamically increased or decreased in size .


    Read Also :    Difference between  HashMap and ConcurrentHashMap 


    Arraylist vs Vector in Java


    1.  Synchronization and Thread-Safe

    Vector is  synchronized while ArrayList is not synchronized  . Synchronization and thread safe means at a time only one thread can access the code .In Vector class all the methods are synchronized .Thats why the Vector object is already synchronized when it is created .

    2.  Performance

    Vector is slow as it is thread safe . In comparison ArrayList is fast as it is non synchronized . Thus     in ArrayList two or more threads  can access the code at the same time  , while Vector is limited to one thread at a time.

    3. Automatic Increase in Capacity

    A Vector defaults to doubling size of its array . While when you insert an element into the ArrayList ,      it increases
    its Array size by 50%  .


    By default ArrayList size is 10 . It checks whether it reaches the       last  element then it will create the new array ,copy the new data of last array to new array ,then old array     is garbage collected by the Java Virtual Machine (JVM) . 

    4. Set Increment Size

    ArrayList does not define the increment size . Vector defines the increment size .

    You can find the following method in Vector Class

    public synchronized void setSize(int i) { //some code  }

    There is no setSize() method or any other method in ArrayList which can manually set the increment size.

    5. Enumerator

    Other than Hashtable ,Vector is the only other class which uses both Enumeration and Iterator .While ArrayList can only use Iterator for traversing an ArrayList .

    6.  Introduction in Java 

    java.util.Vector  class was there in java since the very first version of the java development kit (jdk).
    java.util.ArrayList  was introduced in java version 1.2 , as part of Java Collections framework . In java version 1.2 , Vector class has been refactored to implement the List Inteface .


    Please do mention in the comments in case if you have any doubts or suggestions regarding the post. 

  • 相关阅读:
    【SQL跟踪工具】SQL Profiler 跟踪器
    使用Fiddler调试手机端页面请求/抓包
    SQL 常用判断语句
    VS中常用快捷键
    博客园博客自动生成目录/目录索引
    BZOJ 1135 P3488 LYZ-Ice Skates 线段树+Hall
    BZOJ 4823 老C的方块
    POJ
    BZOJ 1299 [LLH邀请赛]巧克力棒
    BZOJ 2437 [Noi2011]兔兔与蛋蛋
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/6736721.html
Copyright © 2011-2022 走看看