现在,我正在尝试了解如何构造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}
请问,我哪里做错了吗?