谁知道 什么时候 直接用数组 什么时候用 ArrayList 什么时候用cashTable

 我来答
xshrim
2012-12-23 · TA获得超过2157个赞
知道小有建树答主
回答量:688
采纳率:66%
帮助的人:524万
展开全部
数组
数组时最简单的多对象存储结构了,它只能用于存储同一类型的对象,且其占用的空间大小需要预分配,不可更改。

ArrayList
众多集合类中的一个,是一种相对高级的数据结构,应该是链表这样的低级结构封装而成,它最大的特点就是能够动态的存储对象,其空间占用随着对象的增加而增加,对象的减少而减少,即动态分配空间。虽然能够带来内存分配的灵活性,但是却是以牺牲性能为代价的(内部需要大量的内存交换)。
此外ArrayList允许存储任何类型的对象,不过实质上只是将所有对象都转换为Object对象存储而已,取出时需要分别强制转换为各对象本来的类型才能使用。而且这种存储类型的灵活性导致了类型存储的不安全。

HashTable
这个也是集合类的一种。其特点是每一个存储项都是由键-值对组成的,不再是单一的一个对象。非常适合用于处理具有键-值对应这样的结构,比如城市与天气就是一个键值对,城市是键,天气是值,根据城市名就能找到对应的天气。注意这种查找不是遍历查找,而是散列查找,效率会很高。

所以,如果不是必要,或者集合里的对象数量不会发生大幅度的改变,就用普通数组处理,效率高一些,否则可以用ArrayList,灵活性比数组高得多。至于HashTable,其用途和ArrayList它们的差别还是很大的,看描述就知道怎么选择了。
另外,如果是C#的话,为了解决ArrayList、Stack等集合类结构的性能与类型安全弊端,又在其基础上支持了这些结构的泛型,感兴趣可以看一下。
bd9006
2012-12-23 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
没人知道你什么时候需要用ArrayList 或 HashTable。

一个是一维、一个是二维,什么时候,不知道了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式