HashTable

来源:互联网 发布:java求质数算法 编辑:程序博客网 时间:2024/05/23 19:36

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

0 0
原创粉丝点击