HashTable算法
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它经过把关键码值映射到表中一个位置来访问记录,以加快查找的 速度。这个映射函数叫作散列函数,存放记录的数组叫作散列表。数组
哈希表是种数据结构,它能够提供快速的插入操做和查找操做。安全
哈希表算法-概念做用数据结构
线性表:线性表都是以栈、列队、字符串、数组等特殊线性表的形式使用的。函数
线性表是一个线性结构,它是一个含有N>=0个节点的有限序列,对于其中的节点,有且有一个开始节点没有前驱但有一个后续节点,有仅有一个终端节点没有后续但有一个前驱节点,其它的节点都有且仅有一个前驱和一个后续节点。性能
HashMap和Hashtablespa
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap容许空(null)键值(key),因为非线程安全,效率上可能高于Hashtable。线程
HashMap容许将null做为一个entry的key或者value,而Hashtable不容许。htm
HashMap把Hashtable的contains方法去掉了,改为containsvalue和containsKey。由于contains方法容易让人引发误解。 继承
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不一样是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不须要本身为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概同样,因此性能不会有很大的差别。
两句话总结:
HashMap => 不一样步、空键值、效率高;
Hashtable => 同步、非空键值、效率略低
在C#中没有找到hashmap的命名空间。