【发布时间】:2012-07-18 20:07:15
【问题描述】:
现在,我正在尝试了解如何构造 Hashtable。
最有趣的——作为对象被添加到Hashtable?
我读过一本书:
第一步:
计算出的hashCode() 对象。
接下来,我们确定这个对象在Hashtable中的位置:obj.hashCode() % Hashtable.length。
例如,向Hashtable添加更多元素:
Hashtable<String, String> hm=new Hashtable<String, String>(100);
hm.put("Lee","Lee");
hm.put("lee","lee");
hm.put("eel","eel");
定义一个放置对象的桶:
System.out.println("Lee".hashCode() % 100);
System.out.println("lee".hashCode() % 100);
System.out.println("eel".hashCode() % 100);
如果我理解算法,对象必须按如下方式放在表格中:
eel /*because,"eel".hashCode() % 100=0*/,
lee /*because, "lee".hashCode() % 100=20*/,
Lee /*because, "Lee".hashCode() % 100=68*/
但是我们看到的结果是什么?
System.out.println(hm);
{Lee=Lee, lee=lee, eel=eel}
请告诉我,我哪里出错了?
【问题讨论】: