﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-新青年-文章分类-Java/J2EE</title><link>http://www.cnitblog.com/canny/category/6428.html</link><description>放飞梦想 持续优化 追求完美</description><language>zh-cn</language><lastBuildDate>Thu, 29 Sep 2011 09:58:37 GMT</lastBuildDate><pubDate>Thu, 29 Sep 2011 09:58:37 GMT</pubDate><ttl>60</ttl><item><title>[转]Java的数组（Array）、Vector、ArrayList、HashMap的异同</title><link>http://www.cnitblog.com/canny/articles/35417.html</link><dc:creator>新青年</dc:creator><author>新青年</author><pubDate>Fri, 26 Oct 2007 11:01:00 GMT</pubDate><guid>http://www.cnitblog.com/canny/articles/35417.html</guid><wfw:comment>http://www.cnitblog.com/canny/comments/35417.html</wfw:comment><comments>http://www.cnitblog.com/canny/articles/35417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/canny/comments/commentRss/35417.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/canny/services/trackbacks/35417.html</trackback:ping><description><![CDATA[
		<p>array(数组)和Vector是十分相似的Java构件（constructs），两者全然不同，在选择使用时应根据各自的功能来确定。<br />1、数组：Java arrays的元素个数不能下标越界，从很大程度上保证了Java程序的安全性，而其他一些语言出现这一问题时常导致灾难性的后果。<br />    Array可以存放Object和基本数据类型，但创建时必须指定数组的大小，并不能再改变。值得注意的是：当Array中的某一元素存放的是Objrct reference 时，Java不会调用默认的构造函数，而是将其初值设为null，当然这跟Java对各类型数据赋默认值的规则是一样的，对基本数据类型同样适用。</p>
		<p>
				<br />2、Vector：对比于Array，当更多的元素被加入进来以至超出其容量时，Vector的size会动态增长，而Array容量是定死的。同时，Vector在删除一些元素后，其所有下标大于被删除元素的元素都依次前移，并获得新下标比原来的小了）。注意：当调用Vector的size()方法时，返回Vector中实际元素的个数。<br />  Vector内部实际是以Array实现的，也通过元素的整数索引来访问元素，但它只能存放java.lang.Object对象，不能用于存放基本类型数据，比如要存放一个整数10,得用new Integer(10)构造出一个Integer包装类对象再放进去。当Vector中的元素个数发生变化时, 其内部的Array必须重新分配并进行拷贝，因此这是一点值得考虑的效率问题。<br />  Vetor同时也实现了List接口，所以也可以算作Colletion了，只是它还特殊在：Vector is synchronized。即Vetor对象自身实现了同步机制。</p>
		<p>3、ArrayList：实现了List接口，功能与Vetor一样，只是没有同步机制，当然元素的访问方式为从List中继承而来，可存放任何类型的对象。</p>
		<p>4、HashMap：继承了Map接口，实现用Keys来存储和访问Values，Keys和Values都可以为空，它与Hashtable类的区别在于Hashtable类的Keys不能为null,并Hashtable类有同步机制控制，而HashMap类没有。<br />    在Struts类库中实现了一个LableValueBean，用Lable（Key）来存储和访问Value，很方便。<br /><br />本文转自<a href="http://volcano.blogdriver.com/volcano/1284295.html">http://volcano.blogdriver.com/volcano/1284295.html</a></p>
<img src ="http://www.cnitblog.com/canny/aggbug/35417.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/canny/" target="_blank">新青年</a> 2007-10-26 19:01 <a href="http://www.cnitblog.com/canny/articles/35417.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>