J2ME中的Hashtable和Vector

来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-01 22:32 点击:
J2ME中的Hashtable和Vector
2010年08月18日 16:38
J2ME中的数据结构大多都用轻量级的Hashtable和Vector. 

1.Hashtable 

ME版本的Hashtable和SE版本的最大的区别是泛型的支持,前者本身不支持泛型。但是也有些细微的差别。 
Hashtable(以下都是指ME版本的Hashtable)将键(key)映射到值(value)上。任何非空(non-null)的对象都可以被用作一个key或者作为一个值。 
Hashtable实例有两个参数影响其效率:容量和装载因子。装载因子在CLDC实现中始终是75%(而在其它版本中这个值是可以指定的)。当Hashtable中包含的实体数超过装载因子和当前容量的一个结合值(这可能通过相应的算法得出)时,就通过调用rehash方法来增加容量。 
当需要往Hashtable中装入很多实体时,创建一个合适大容量的Hashtable实例比让实例去自动增加来容量来适应要在性能上高的多。 

2.Vector 
Vector类实现了一个可增的对象数组。像数组一样,它包含的组件可以用整数索引(下表)来访问。因此,当Vector创建之后,一个Vector的大小可以随着增加或者移除元素操作而增大或者减小。 
每个Vector试着通过维持一个容量(capacity)和一个容量增量(capacityIncrement)来优化存储管理。容量总是至少跟Vector的大小(size)一样大;它通常都会大一些,因为组件会被加进到Vector中,Vector的存储大小会以capacityIncrement块大小来增加。应用程序可以在插入大量组件之前对Vector容量进行增加;这样做可以降低增加性重新分配的数量。 

数据结构中我们学习过链表、数组、树等诸多数据结构。Hashtable就是一种底层由链表实现的数据结构,所以它拥有链表数据结构的优缺点。而Vector由数据结构比较特殊的数组来实现,同样拥有了数组的优缺点,不同的时,由于在数组基础之上增加的可变的操作,这样一定程度上降低了它的效率。不过Vector的效率据说还是相当高的。

本文出自 “技术人生” 博客,请务必保留此出处http://zhaohaiyang.blog.51cto.com/2056753/432981

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Java编程语言的八大优点
      • JVM对象生命周期详细介绍
      • Java平台上的CRM系统
      • Java 算数测试小程序
      • Java环境 使用Resin在NT环境下配置JSP环境
      • Command(命令模式)
      • Java 一个简单的画图程序
      • Java 日历的小程序
      • Java 数组的复制
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1