1.函数都是同步的,线程安全,不允许null key或null value 2.contains方法中使用的遍历
for (int i = tab.length ; i-- > 0 ;) { for (Entry e = tab[i] ; e != null ; e = e.next) { if (e.value.equals(value)) { return true; } } }3.put时没有对key进行再次hashcode,使用的是key本身的hashcode,所以对于Entry索引判断与HashMap不同:
int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length;4.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。 在索引判断中,运用的是取余方式,质数的取余分散效果较好,这里虽然不是质数,但也是奇数。
5.遍历方式 第一个是遍历keySet,再根据每个key获取value 第二个是遍历entrySet,从entrySet获取key与value 第三个是通过Enumeration遍历Hashtable的key或value
Enumeration enu = table.keys(); while(enu.hasMoreElements()) { System.out.println(enu.nextElement()); } Enumeration enu = table.elements(); while(enu.hasMoreElements()) { System.out.println(enu.nextElement()); }参考:http://blog.csdn.net/zheng0518/article/details/42199477