J2ME数据结构中Hashtable和Vector的使用

开发 前端
本文向大家简单介绍一下J2ME中的Hashtable和Vector的使用,ME版本的Hashtable和SE版本的最大的区别是泛型的支持,前者本身不支持泛型。但是也有些细微的差别。

J2ME中的数据结构大多都用轻量级的Hashtable和Vector,这里和大家分享一下它们的具体用法,当需要往Hashtable中装入很多实体时,创建一个合适大容量的Hashtable实例比让实例去自动增加来容量来适应要在性能上高的多。

J2ME中的Hashtable和Vector

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的效率据说还是相当高的。

【编辑推荐】

  1. J2ME可选包—PIM用法详解
  2. 技术分享 用OTA下载本机J2ME程序至手机
  3. 调用Netbeans IDE集成Motorola J2ME SDK5.4.2
  4. MotorolaJ2ME开发时需要注意的几个细节
  5. Java2平台J2SE、J2EE、J2ME三大版本的区别
责任编辑:佚名 来源: hi.baidu.com
相关推荐

2010-09-29 14:54:34

J2MEHashtable

2010-09-30 12:53:00

J2MECSS

2010-09-29 08:57:04

J2ME前景

2010-09-30 09:56:26

J2ME Polish

2009-06-17 11:27:00

setClip方法J2ME

2010-09-29 15:45:49

J2MEFontColor

2010-09-29 10:41:18

J2MEJVM

2010-10-09 14:29:44

J2MEfontcolor

2009-06-23 11:30:16

RMSJ2ME

2010-09-29 13:50:31

J2MEJ2SE

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-10-09 15:58:36

J2ME图形

2010-09-30 11:04:53

J2MERMS

2011-12-02 10:37:14

JavaJ2ME

2009-05-26 17:35:40

J2ME软件签名证书

2010-09-30 08:49:17

cookieJ2ME

2009-06-30 15:49:00

J2ME编程

2010-09-29 09:19:39

J2ME开发工具

2010-10-09 15:07:09

J2MEWeb服务

2010-09-29 14:01:10

J2MEJ2SE
点赞
收藏

51CTO技术栈公众号