`
zxq198181
  • 浏览: 13827 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Array, Vector, List, HashMap的区别

阅读更多
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)**: 树是一种非线性的...

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

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

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

    Java集合容器概述、集合框架、List、Set、Map接口、Iterator、ArrayList、LinkedList、Vector、HashSet、HashMap、Queue、BlockingQueue、ConcurrentHashMap等。 Java 集合容器概述 Java 集合容器是用于存储数据...

    BATjava面试含答案

    6. List>Array 使用 toArray 方法,Array>List 使用 Arrays.asList(array) 方法,由于它是固定的,不固定的可以使用 new ArrayList(Arrays.asList(array))。 二、Map 相关知识点 1. 常用的 Map 集合有 HashMap、...

    集合框架的各自区别.pdf

    1. List接口:ArrayList、LinkedList和Vector是List接口的实现。ArrayList基于数组实现,适合随机访问,插入和删除操作相对较慢;LinkedList基于双向链表,插入和删除快,但随机访问慢;Vector与ArrayList相似,但在...

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

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

    Java弱引用实现源码-coding-guide_i3geek:一名JAVA程序员,将自己的编程学习之路做以总结并进行分享。内容包括但不限于数

    Array Collection Collections List ArrayList LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private ...

    基于javatcpsocket通信的拆包和装包源码-coding-guide_i3geek-master:编码指南_i3geek-master

    Array Collection Collections List ArrayList LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private ...

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

    - 使用`Arrays.asList(array)`将数组转为`List`。 - 使用`list.toArray()`将`List`转为数组。 #### ArrayList与LinkedList的区别 - **ArrayList**:基于数组实现,随机访问快,增删慢。 - **LinkedList**:基于链表...

    java中setmaplisttablevectorarray的比较总结.docx

    ### Java中Set、Map、List、Table、Vector、Array的比较总结 #### 一、概述 在Java编程语言中,集合框架(Collection Framework)提供了一系列用于处理数据的接口和类,其中包括Set、List、Map等核心接口以及它们...

    2020版Java容器 17 道.pdf

    3. **List、Set、Map之间的区别?** - List是有序集合,元素可以通过索引访问,允许重复元素。 - Set无序集合,不保证元素顺序,不允许重复元素。 - Map是键值对集合,键唯一,值可以重复。 4. **HashMap和...

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

    - `Vector`:线程安全的`List`实现。 - `Stack`:基于`Vector`的栈实现,线程安全。 - **线程不安全的集合**: - `HashMap` - `ArrayList` - `LinkedList` - `HashSet` - `TreeSet` - `TreeMap` #### 3. ...

    java面试宝典

    66、HashMap和Hashtable的区别 17 67、说出ArrayList,Vector, LinkedList的存储性能和特性 17 68、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 17 69、文件读写的...

    Java版水果管理系统源码-BAT-Java:Java课堂笔记、代码、java核心知识点梳理、java笔试面试资料

    Array Collection Collections List ArrayList LinkedList Vector Set HashMap TreeMap LinkedHashMap ConcerrentHashMap Set TreeMap HashMap synchronized volatile transient implements extends public private ...

    javaweb开发小知识

    String[] array = vector.toArray(new String[0]); for (String s : array) { System.out.println(s); } ``` 2. **字符串开头与结尾的判断**: 要检查字符串是否以特定字符串开头或结尾,可以使用`startsWith()`...

    Java中Collection、List、Set、Map之间的关系总结

    List接口允许有相同元素,例如ArrayList、LinkList、Vector等。ArrayList是实现可变大小的数组,允许所有的元素,不是同步的,也就是没有同步方法。LinkList允许null元素,通常在首部或者尾部操作,所以常被使用做...

    数据挖掘十大经典算法

    根据给定文件的信息来看,这份材料似乎偏离了“数据挖掘十大经典算法”的主题,反而讨论了编程中的数据结构如数组(Array)、向量(Vector)、动态数组(ArrayList)、哈希表(HashMap)以及链表(List)等内容。不过,既然您...

Global site tag (gtag.js) - Google Analytics