欢迎来到天天文库
浏览记录
ID:34417223
大小:24.79 KB
页数:6页
时间:2019-03-05
《java的hashtable的用法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、java的hashtable的用法(1)Vector允许我们用一个数字从一系列对象中作出选择,所以它实际是将数字同对象关联起来了。但假如我们想根据其他标准选择一系列对象呢?堆栈就是这样的一个例子:它的选择标准是“最后压入堆栈的东西”。这种“从一系列对象中选择”的概念亦可叫作一个“映射”、“字典”或者“关联数组”。从概念上讲,它看起来象一个Vector,但却不是通过数字来查找对象,而是用另一个对象来查找它们!这通常都属于一个程序中的重要进程。在Java中,这个概念具体反映到抽象类Dictionary身上。该类的接口是非常直观的size()告
2、诉我们其中包含了多少元素;isEmpty()判断是否包含了元素(是则为true);put(Objectkey,Objectvalue)添加一个值(我们希望的东西),并将其同一个键关联起来(想用于搜索它的东西);get(Objectkey)获得与某个键对应的值;而remove(ObjectKey)用于从列表中删除“键-值”对。还可以使用枚举技术:keys()产生对键的一个枚举(Enumeration);而elements()产生对所有值的一个枚举。这便是一个Dictionary(字典)的全部。Dictionary的实现过程并不麻烦。下面列出
3、一种简单的方法,它使用了两个Vector,一个用于容纳键,另一个用来容纳值://:AssocArray.java//SimpleversionofaDictionaryimportjava.util.*;publicclassAssocArrayextendsDictionary{privateVectorkeys=newVector();privateVectorvalues=newVector();publicintsize(){returnkeys.size();}publicbooleanisEmpty(){returnkeys.
4、isEmpty();}publicObjectput(Objectkey,Objectvalue){keys.addElement(key);values.addElement(value);returnkey;}publicObjectget(Objectkey){intindex=keys.indexOf(key);//indexOf()Returns-1ifkeynotfound:if(index==-1)returnnull;returnvalues.elementAt(index);}publicObjectremove(Obj
5、ectkey){intindex=keys.indexOf(key);if(index==-1)returnnull;keys.removeElementAt(index);Objectreturnval=values.elementAt(index);values.removeElementAt(index);returnreturnval;}publicEnumerationkeys(){returnkeys.elements();}publicEnumerationelements(){returnvalues.elements()
6、;}//Testit:publicstaticvoidmain(String[]args){AssocArrayaa=newAssocArray();for(charc='a';c<='z';c++)aa.put(String.valueOf(c),String.valueOf(c).toUpperCase());char[]ca={'a','e','i','o','u'};for(inti=0;i7、[i])));}}///:~在对AssocArray的定义中,我们注意到的第一个问题是它“扩展”了字典。这意味着AssocArray属于Dictionary的一种类型,所以可对其发出与Dictionary一样的请求。如果想生成自己的Dictionary,而且就在这里进行,那么要做的全部事情只是填充位于Dictionary内的所有方法(而且必须覆盖所有方法,因为它们——除构建器外——都是抽象的)。Vectorkey和value通过一个标准索引编号链接起来。也就是说,如果用“roof”的一个键以及“blue”的一个值调用put()——假定我们8、准备将一个房子的各部分与它们的油漆颜色关联起来,而且AssocArray里已有100个元素,那么“roof”就会有101个键元素,而“blue”有101个值元素。而且要注意一下get(),假如
7、[i])));}}///:~在对AssocArray的定义中,我们注意到的第一个问题是它“扩展”了字典。这意味着AssocArray属于Dictionary的一种类型,所以可对其发出与Dictionary一样的请求。如果想生成自己的Dictionary,而且就在这里进行,那么要做的全部事情只是填充位于Dictionary内的所有方法(而且必须覆盖所有方法,因为它们——除构建器外——都是抽象的)。Vectorkey和value通过一个标准索引编号链接起来。也就是说,如果用“roof”的一个键以及“blue”的一个值调用put()——假定我们
8、准备将一个房子的各部分与它们的油漆颜色关联起来,而且AssocArray里已有100个元素,那么“roof”就会有101个键元素,而“blue”有101个值元素。而且要注意一下get(),假如
此文档下载收益归作者所有