注册
|
提交需求
|
订阅
|
English
首 页
解决方案
产 品
服 务
支 持
EDN系统
成功案例
关于我们
联系我们
树结构图
EDN系统
图形图像
网络安全
项目专题
WEB开发
办公系列
操作系统
数据库
程序设计
TOP 10
在Foxmail中如何使…
Ftp 子命令
BigDecimal
MSN在线客服功能模块使…
会员卡使用方法说明
DataInputStr…
留言板功能说明
CScript
BufferedInpu…
设置打印机
您现在的位置:
>
技术沙龙
>
程序设计
>
Java
>
未分类
>
Java的数组(Array)、Vector、ArrayList、HashMap的异同
相关软件
>
Java的数组(Array)、Vector、ArrayList、HashMap的异同
创建者:
webmaster
更新时间:
2005-05-31
11:48
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,很方便。
相关文章
向前:
一个简单的用JAVA实现的屏幕抓图(源代码)
向后:
Java异常处理--尽量不要从try区段中返回(return)
本页查看次数:
公司公告
|
客户调查
|
法律声明
|
诚聘英才
|
给我们投稿
|
繁
闪
头像
京ICP备05031245号
Copyright @ REDCOME.com ALL Rights Reserved
北京怡康软件科技有限公司 地址:北京市昌平区东小口立汤路188号北方明珠大厦1号楼2708 邮编:102218 电话:84909966 传真:84909900 QQ:335601661