1、Dictionary<K,V>在使用中是顺序存储的,而Hashtable由于使用的是哈希算法进行数据存储,是无序的。 2、Dictionary的key和value是泛型存储,Hashtable的key和value都是object 3、Dictionary是泛型存储,不需要进行类型转换,Hashtable由于使用object,在存储或者读取值时都需要进行类型转换,所以比较耗时 4、单线程程序中推荐...
由于Hashtable 和 Dictionary 同时存在, 在使用场景上必然存在选择性, 并不任何时刻都能相互替代. [1] 单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分. [2] 多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized...
多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型.而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减。 (4)在通过代码测试的时候发现key是整数型Dictionary的效率比Hashtable快,如果key是字...
所以在从Dictionary或者Hashtable取值时,可以先判断Key值是否存在(用ContainsKey()方法进行判断),以防止出现预期以外的值或者异常。 第四、线程安全性 Dictionary不是线程安全的,Hashtable是线程安全的。对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lo...
经过测试,对于值类型(不包括 Object)的 Dictionary<TKey, TValue> 的性能优于 Hashtable,所以推荐使用Dictionary。 Dictionary和HashTable的区别 1:单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分。 2:多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取...
Hashtable和Dictionary从数据结构上来说都属于Hashtable,都是对关键字(键值)进行散列操作,将关键字散列到Hashtable的某一个槽位中去,不同的是处理碰撞的方法。散列函数有可能将不同的关键字散列到Hashtable中的同一个槽中去,这个时候我们称发生了碰撞,为了将数据插入进去,我们需要另外的方法来解决这个问题。
Hashtable 和 Dictionary 是两种常见的数据结构,它们在存储和查找数据方面有一些不同的特点和应用场景。 Hashtable 是一种基于哈希表实现的数据结构,它使用哈希函数将键映射到存储桶中,以实现高效的数据访问和查找。Hashtable 是一种无序的数据结构,不保证数据的顺序。Hashtable 的主要优势在于它的查找、插入和删除操...
Dictionary<K,V>是泛型的,当K或V是值类型时,其速度远远超过Hashtable。 2.由于 Hashtable 和 Dictionary 同时存在, 在使用场景上必然存在选择性, 并不任何时刻都能相互替代. [1] 单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分. ...
1):单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分. 2):多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized()方法可以获得完全线程安全的类型. 而Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率...
两个词语的区别在于泛型支持不同、存储方式不同。1、泛型支持不同:hashtable不支持泛型,所有的键值对都是Object类型。而dictionary支持泛型,在dictionary中,键和值的类型需要在创建时明确指定。2、存储方式不同:hashtable由于使用的是哈希算法进行数据存储,是无序的,而dictionary在使用中是顺序存储的。