`
xiaolongRen_will
  • 浏览: 28095 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

题002_ArrayList和Vector的区别

 
阅读更多

这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,,并且其中的数据是允许重复的,这是HashSet之类的集合的最大不同处,HashSet之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素(本来题目问的与hashset没有任何关系,但为了说清楚ArrayListVector的功能,我们使用对比方式,更有利于说明问题)。

 

 

接着才说ArrayListVector的区别,这主要包括两个方面

 

1同步性

Vector是线程安全的,也就是说是它的方法之间是线程同步的,而ArrayList是线程序不安全的,它的方法之间线程不同步的。如果只有一个线程会访问到集合,那最好是使用ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程会访问到集合,那最好是使用Vector,因为不需要我们自己再去考虑和编写线程安全的代码。

 

备注:对于Vector&ArrayListHashtable&HashMap,要记住线程安全的问题,记住VectorHashtable是旧的,是java一诞生就提供了的,它们是线程安全的,ArrayListHashMapjava2时才提供的,它们是线程不安全的。所以,我们讲课时先讲老的。


2数据增长

ArrayListVector都有一个初始的容量大小,存储进它们里面的元素的个数超过了容量时,就需要增ArrayListVector的存储空间,每次要增加存储空间时,不是只增加一个存储单元,而是增加多个存储单元,每次增加的存储单元的个数在内存空间利用与程序效率之间要取得一定的平衡。Vector默认增长为原来两倍,而ArrayList增长策略在文档中没有明确规定(从源代码看到的是增长为原来1.5倍)。ArrayListVector都可以设置初始的空间大小,Vector还可以设置增长的空间大小,而ArrayList没有提供设置增长空间的方法。

 

    总结:即Vector增长原来的一倍,ArrayList增加原来的0.5倍。

---------------------------------------------------------------------------

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Note_scalad.tar.gz

    Java_ArrayList_Vector Java_Bubble_Sort Java_ClassLoader Java_Copy_On_Write Java_Exception Java_ExecutorService Java_IO Java_JVM_Monitor Java_Jstat Java_Lambda Java_Memory Java_Node Java_Photo_Base64...

    java集合类面试题总结

    ArrayList 和 Vector 的区别 ArrayList 和 Vector 都是 Java 中的数组列表实现,但它们也有所不同。ArrayList 不是线程安全的,而 Vector 是线程安全的。ArrayList 默认增长为原来的一半,而 Vector 默认增长为原来...

    JAVA-面试题大全(含答案)

    阐述ArrayList、Vector、LinkedList的存储性能和特性。 答:ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及...

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

    本资源摘要信息涵盖了 JAVA 程序员笔试面试题汇总及答案,涵盖了基础题、中等题、提高题等多种题型,涉及到访问控制符、ArrayList 和 Vector 的区别、HashMap 和 Hashtable 的区别、Collection 和 Collections 的...

    java工程师面试题大全100%公司笔试题你都能碰到几个

    本文总结了Java工程师面试题大全,涵盖了Java相关的知识点,包括Hibernate、HTTP协议、SMTP协议、Servlet生命周期、SQL语句分页、集合框架、final、finally、finalize的区别、ArrayList、Vector、LinkedList的存储...

    Java面试题必备——Java基础知识部分汇

    涵盖了Java面试中常见的问题,包括作用域、String类、int和Integer的区别、String和StringBuffer的区别、运行时异常与一般异常的异同、Servlet的生命周期、ArrayList、Vector、LinkedList的存储性能和特性、EJB的...

    java试题 java笔试题 java面试题

    本资源摘要信息中,我们将对 Java 相关试题、笔试题和面试题进行总结和分析,涵盖了 XML 解析技术、Struts 框架、ArrayList 和 Vector 的区别、HashMap 和 Hashtable 的区别、JDK 1.5 和 1.6 新特性、Hibernate 工作...

    java面试题内含答案

    本资源总结了 Java 相关基础知识,涵盖面向对象编程的特征、String 和 StringBuffer 的区别、运行时异常与一般异常的异同、Servlet 的生命周期、ArrayList, Vector, LinkedList 的存储性能和特性,以及 EJB 的实现...

    JAVA笔试题大全共120道题+SSH框架

    JAVA笔试题大全共120道题+SSH框架 在本资源中,我们将对 Java 笔试题大全共 120 道题 + SSH 框架进行总结和...CGI 的区别、ArrayList, Vector, LinkedList 的存储性能和特性、Collection 和 Collections 的区别等。

    java基础面试题WORD

    本资源摘要信息涵盖了 Java 基础知识点,包括面向对象的特征、String 和 StringBuffer 的区别、运行时异常与一般异常的区别、Servlet 生命周期、ArrayList、Vector 和 LinkedList 的存储性能和特性、EJB 的实现技术...

    java面试笔试题大汇总 java相关基础知识.doc

    本资源摘要信息涵盖了 Java 面试笔试题大汇总 Java 相关基础知识的主要内容,包括面向对象的特征、String 和 StringBuffer 的区别、运行时异常与一般异常的区别、Servlet 的生命周期、ArrayList、Vector、LinkedList...

    java经典笔面试题

    ArrayList和Vector允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,插入速度较慢。LinkedList插入速度较快,但索引数据需要进行前向或后向遍历。 八、EJB的技术实现 EJB是基于JavaEE的技术...

    集合框架面试题.pdf

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

    JAVA试题0618_答案.doc

    List和Vector都是Java集合框架中的接口实现,主要区别在于线程安全性:Vector是线程安全的,而ArrayList不是,所以在多线程环境下,Vector的性能较差,但ArrayList更适合单线程或同步控制的场合。 在Oracle数据库中...

    Java基础部分 Java代码查错算法与编程html&JavaScript&ajax部分面试题

    59、ArrayList和Vector的区别 2 60、HashMap和Hashtable的区别 2 61、List 和 Map 区别? 2 62、List, Set, Map是否继承自Collection接口? 2 63、List、Map、Set三个接口,存取元素时,各有什么特点? 2 64、说出...

    【Java基础】集合框架-面试题.pdf

    1. ArrayList 和 Vector 的区别; 2、ArrayList,Vector, LinkedList 的存储性能和特性; 3. 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别; 4. HashMap 的数据结构、工作原理 等Java集合部分经常遇到的面试...

    最新JAVA线程的全部面试题

    ArrayList和Vector的区别,HashMap和Hashtable的区别

    java面试题

    2. ArrayList 和 Vector 的区别 ArrayList 和 Vector 都是 Java 中的集合类,但是它们有着不同的特点。Vector 是线程安全的,也就是说是同步的,而 ArrayList 是线程序不安全的,不是同步的。同时,Vector 的增长...

    Java 面试题 基础面试题目 初入职场

    本文总结了 Java 编程语言的基础知识点,涵盖了 Java 面试题的多个方面,包括作用域、String 和 StringBuffer 的区别、运行时异常与一般异常的区别、Servlet 的生命周期、ArrayList, Vector, LinkedList 的存储性能...

Global site tag (gtag.js) - Google Analytics