论坛
门户
内部优惠
喜欢
话题
VIP会员
搜索
新浪微博
登录
注册
100%
100%
首页
>
软件开发
>
java语言
>
Java的数组(Array)、Vector、ArrayLis...
回复
« 返回列表
111111
精灵王
注册日期
2010-12-08
发帖数
640
QQ
火币
1103枚
粉丝
120
关注
75
加关注
写私信
打招呼
阅读:
3402
回复:
0
Java的数组(Array)、Vector、ArrayList、HashMap的异同-JSP教程,Java技巧及代码
楼主
#
更多
只看楼主
倒序阅读
发布于:2010-12-15 13:23
保存
100%
100%
[]
1
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,非常方便。
喜欢
0
评分
0
最新喜欢:
回复
100%
发帖
回复
« 返回列表
普通帖
您需要登录后才可以回帖,
登录
或者
注册
100%
返回顶部
关闭
最新喜欢