关于哈希表类Hasttable()的问题:
1. 构造方法Hashtable(Objece obj1,Object obj2)中,究竟哪个是元素的值,哪个是索引值?
2. Enumeration elements()究竟如何使用,请举一例,请问什么是枚举类型?
3. 请看代码:System.out.println(s);
ht.put("Liverpool","Owen");
ht.put("Liverpool","Baros");
Object find=ht.get("Liverpool");
System.out.println(find);
明明我先输入的是“Owen”,为什么输出的却是“Baros”,Hashtable的查找/存储顺序是怎样的?
4. 同样是上面建立的Hasttable,请看如下代码:
s=ht.contains("Owen")?"The hashtable contains your element.":"The hashtable doesn't contains your element.";
System.out.println(s);
怎么输出是后者?我把“Owen”改为“Liverpool”,输出依然是后者,为什么呢?
问题点数:20、回复次数:4Top
1 楼shos(和月 修)回复于 2003-02-03 18:39:07 得分 5
3:
Hashtable 是单元素字典,因此,你的第二行操作,已经把键为 "Liverpool" 的元素内容设为了 "Baros",以前的 "Owen" 已经消失。
Top
2 楼simonjava()回复于 2003-02-05 01:03:27 得分 5
1. Hash table 的构造函数为
Hashtable(int initialCapacity, float loadFactor)
initialCapacity: 是初始化容量
loadFactor:代表了已用空间占总容量的百分比,
超过此限即增加容量。
元素是以put()方法输入的,而不是在初始化时。Top
3 楼Mai_520(一个很有上进心的流氓)回复于 2003-02-05 01:27:05 得分 10
在hashtable种obj1作为关键字,而obj2就是关键字所对应的值。
所以第2个Liverpool作为关键字把具有相同的关键字关键字覆盖了,值也覆盖了。
关于Enumeration的用法如下:
import java.util.*;
public class Test
{
static Vector v=new Vector();
public static void main(String[] args)
{
v.add("11111");
v.add("22222");
v.add("33333");
Enumeration e=v.elements();
while(e.hasMoreElements())
System.out.println(e.nextElement());
}
} Top
4 楼herolong(阳光灿烂的日子)回复于 2003-06-08 15:20:22 得分 0
upTop




