1.哈希表:若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数,按这个思想建立的表为散列表,也叫哈希表;
HashMap:底层是哈希表是一个数组 ,每个数组的位置上对应一个链表,是数组和链表的结合;http://www.importnew.com/16301.html;
1):HashMap实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆。线程不安全的;
2):String 作为key 会导致 hash值重复概率增加。
2.hashtable:Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。
1)集成Dictionary字典类;
3.Hashtable和HashMap到底有哪些不同呢
(1)基类不同:HashTable基于Dictionary类,而HashMap是基于AbstractMap。Dictionary是什么?它是任何可将键映射到相应值的类的抽象父类,而AbstractMap是基于Map接口的骨干实现,它以最大限度地减少实现此接口所需的工作。
(2)null不同:HashMap可以允许存在一个为null的key和任意个为null的value,但是HashTable中的key和value都不允许为null。
(3)线程安全:HashMap时单线程安全的,Hashtable是多线程安全的。
(4)遍历不同:HashMap仅支持Iterator的遍历方式,Hashtable支持Iterator和Enumeration两种遍历方式。