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

Array和Vector,HashMap的区别 [转]

    博客分类:
  • Java
阅读更多

        [转]自 http://blog.hunan2s.com/article.asp?id=130

        array(数组)和Vector是十分相似的Java构件(constructs),两者全然不同,在选择使用时应根据各自的功能来确定。

1、数组:Java arrays的元素个数不能下标越界,从很大程度上保证了Java程序的安全性,而其他一些语言出现这一问题时常导致灾难性的后果。
        Array可以存放Object和基本数据类型,但创建时必须指定数组的大小,并不能再改变。值得注意的是:当Array中的某一元素存放的是Objrct reference 时,Java不会调用默认的构造函数,而是将其初值设为null,当然这跟Java对各类型数据赋默认值的规则是一样的,对基本数据类型同样适用。


2、Vector:对比于Array,当更多的元素被加入进来以至超出其容量时,Vector的size会动态增长,而Array容量是定死的。同时,Vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)。注意:当调用Vector的size()方法时,返回Vector中实际元素的个数。
     Vector内部实际是以Array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.Object对象,不能用于存放基本类型数据,比如要存放一个整数10,得用new Integer(10)构造出一个Integer包装类对象再放进去。当Vector中的元素个数发生变化时, 其内部的Array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。
     Vetor同时也实现了List接口,所以也可以算作Colletion了,只是它还特殊在:Vector is synchronized。即Vetor对象自身实现了同步机制。

3、ArrayList:实现了List接口,功能与Vetor一样,只是没有同步机制,当然元素的访问方式为从List中继承而来,可存放任何类型的对象。

4、HashMap:继承了Map接口,实现用Keys来存储和访问Values,Keys和Values都可以为空,它与Hashtable类的区别在于Hashtable类的Keys不能为null,并Hashtable类有同步机制控制,而HashMap类没有。
      在Struts类库中实现了一个LableValueBean,用Lable(Key)来存储和访问Value,很方便。

分享到:
评论

相关推荐

    树tree、动态数组dyArray、hashMap、拼图算法.zip

    本压缩包文件涵盖了四个关键概念:树(Tree)、动态数组(Dynamic Array)、哈希映射(HashMap)以及拼图算法(Puzzle Algorithm)。接下来,我们将详细探讨这些知识点。 1. **树(Tree)**: 树是一种非线性的...

    02-Java集合容器面试题-重点.docx

    HashMap和ConcurrentHashMap有什么区别?ConcurrentHashMap和Hashtable有什么区别?ConcurrentHashMap的底层实现知道吗?实现原理是什么?辅助工具类Array和ArrayList有什么区别?如何实现Array和List之间的转换?...

    Java 最常见的 208 道面试题:第二模块答案

    **HashMap 和 Hashtable 的区别**: - **线程安全性**:Hashtable 是线程安全的,而 HashMap 不是。在多线程环境中,若需要线程安全,可以选择 ConcurrentHashMap。 - **空值支持**:HashMap 允许键值为 null,而 ...

    Java集合类List-Set-Map的区别和联系.doc

    Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...

    集合框架的各自区别.pdf

    Java集合框架是编程中不可或缺的一部分,它提供了多种数据结构和算法,使得存储、管理和操作对象更加方便。集合框架主要由四个核心接口组成:...了解这些集合的区别和特点,有助于选择最适合特定需求的集合类型。

    德塔数据结构变量快速转换 引擎系统 源码1.01

    - `arrayToVector(Gson gson, Object[] objects)` 和 `arrayToList(Object[] objects)` 分别将数组转换为Vector和ArrayList实例,它们都是Java中的动态数组实现,但Vector是线程安全的,而ArrayList则不是。...

    2020版Java容器 17 道.pdf

    4. **HashMap和Hashtable的区别?** - HashMap非线程安全,允许null键和null值;Hashtable是线程安全的,不接受null键和null值。 - HashMap在Java 8后使用了红黑树来优化,性能更优。 5. **如何决定使用HashMap...

    Java集合框架面试题

    3. Vector 和 ArrayList 的区别: - a) Vector 和 ArrayList 都是实现了基于动态数组的数据结构,如果集合中元素的个数大于目前集合数组的长度时,Vector 增长率为目前数组长度的 100%,ArrayList 则为目前数组长度...

    Java集合容器面试题(2022最新版)-重点.docx

    #### HashMap和ConcurrentHashMap的区别 - `ConcurrentHashMap`是线程安全的,适用于多线程环境。 - `ConcurrentHashMap`通过分段锁机制提高并发性能。 #### ConcurrentHashMap与Hashtable的区别 - `...

    java7hashmap源码-WeishenTemp:WeishenTemp

    的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你将会被问到许多 Java 程序员都没有看过的领域,如 NIO,设计模式,成熟的单元...

    JAVA面试-集合知识点汇总(高频、经典).doc

    Array和ArrayList有什么区别?什么时候应该使用Array而不是ArrayList呢? - **类型差异**:`Array`只能存储特定类型的元素,而`ArrayList`可以存储任意类型的对象。 - **性能差异**:对于基本类型而言,直接使用...

    java教材课后习题答案

    - 数组与列表:Array、ArrayList、Vector的区别与应用。 - 链表:LinkedList的原理和操作。 - 集合:HashSet、TreeSet的特性与用途。 - 映射:HashMap、TreeMap、LinkedHashMap的工作原理及操作。 4. **IO流** ...

    java中setmaplisttablevectorarray的比较总结.docx

    此外,还涉及到了其他数据结构如Vector和Array。本文旨在对比分析这些数据结构的特点、适用场景及优缺点。 #### 二、具体分析 ##### 1. List - **特性**:List是一个有序的集合,可以包含重复的元素。它维护了一个...

    java面试常见问题

    在我初入职场的时候,类似于 Vector 与 Array 的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你将会被问到许多 Java 程序员都...

    Java面试总结.pdf

    20. ArrayList和Vector的区别:Vector与ArrayList类似,也是基于动态数组实现的,但是Vector是线程安全的,因为它的大部分方法都是同步的,性能相对较差。 21. Array和ArrayList的区别:Array是Java语言中用于表示...

    java基础之集合面试题共4页.pdf.zip

    9. **集合转换**:List转Set,List转Array,以及流(Stream)操作的转换。 10. **面试技巧**:如何根据场景选择合适的集合,如何解释和分析代码性能,以及如何处理面试中遇到的集合难题。 这些知识点不仅对于面试准备...

    关于Java集合框架面试题(含答案)下

    面试中,面试官经常关注候选者对集合框架的理解,特别是HashMap、HashTable、ArrayList、Vector、LinkedList以及EnumSet等类的区别和应用场景。 21.HashMap与HashTable的主要区别: - HashMap允许null键和值,而...

    java面试宝典2021.docx

    - **线程安全**:Vector、HashTable和Stack是线程安全的,而HashMap等非线程安全,可以使用ConcurrentHashMap替代。 5. **迭代器 Iterator**: - **作用**:用于遍历Collection,提供add、remove和next等方法。 ...

Global site tag (gtag.js) - Google Analytics