快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Java的数组(Array)、Vector、ArrayList、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,很方便。






返回类别: 教程
上一教程: 在struts中使用国际化(i18n)
下一教程: [原创] Eclipse 3.1M5a中创建RCP程序

您可以阅读与"Java的数组(Array)、Vector、ArrayList、HashMap的异同"相关的教程:
· Java源码解读之util.ArrayList
· Java 2源码解读:java.util.ArrayList
· JAVA中的异步网络编程
· Java中对HashMap的深度分析
· JAVA中对HASHMAP的深度分析与比较
    微笑服务 优质保证 索取样品