现在,我试图了解如何构建Hashtable
.
最有趣的是——当对象被添加到Hashtable
?
我在一本书上读到:
第一步:
已计算hashCode()
object.
接下来,我们确定该对象在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}
请告诉我,我哪里做错了?