为什么80%的码农都做不了架构师?>>>   

1.HashTable

哈希表(HashTable)表示键/值对的集合。在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key-value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key-value键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对,任何非 null 对象都可以用作键或值。

在哈希表中添加一个key/键值对:HashtableObject.Add(key,);

在哈希表中去除某个key/键值对:HashtableObject.Remove(key);

从哈希表中移除所有元素: HashtableObject.Clear();

判断哈希表是否包含特定键key: HashtableObject.Contains(key);

2.HashSet

HashSet<T>类主要是设计用来做高性能集运算的,例如对两个集合求交集、并集、差集等。集合中包含一组不重复出现且无特性顺序的元素,HashSet拒绝接受重复的对象。

HashSet<T>的一些特性如下:

a. HashSet<T>中的值不能重复且没有顺序。

b. HashSet<T>的容量会按需自动添加。

3.Dictionary

Dictionary表示键和值的集合。

Dictionary<string, string>是一个泛型

他本身有集合的功能有时候可以把它看成数组

他的结构是这样的:Dictionary<[key], [value]>

他的特点是存入对象是需要与[key]值一一对应的存入该泛型

通过某一个一定的[key]去找到对应的值

4.HashTable和Dictionary的区别:

(1).HashTable不支持泛型,而Dictionary支持泛型。

(2). Hashtable 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和拆箱的操作,所以你可能需要进行一些类型转换的操作,而且对于int,float这些值类型还需要进行装箱等操作,非常耗时。

(3).单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分。多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减。

原文地址:http://www.cnblogs.com/akwwl/p/3680376.html

转载于:https://my.oschina.net/wzzz/blog/423811

HashTable、HashSet和Dictionary的区别相关推荐

  1. hashset hastable dictionary concurrentdictionary区别

    hashset hastable dictionary concurrentdictionary区别 1.HashTable 哈希表(HashTable)表示键/值对的集合.在.NET Framewo ...

  2. HashMap HashTable HashSet区别剖析

    HashMap.HashSet.HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析: 在分析之前,先将其区别列于下面 1:HashSet底层采用的 ...

  3. 转载 hashtable和dictionary的区别

    1:单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分. 2:多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程 ...

  4. Hashtable TreeMap HashMap LinkedHashMap的区别

    Hashtable TreeMap HashMap LinkedHashMap的区别 Hashtable TreeMap HashMap LinkedHashMap详解 Hashtable 1.内部存 ...

  5. HashSet 和 TreeSet的区别

    HashSet 和 TreeSet的区别 HstSet和TreeSet详解 HashSet 内部是由哈希表(实际上是一个 HashMap 实例)支持的.它不保证 set 元素的迭代顺序. TreeSe ...

  6. 浅谈HashTable, HashMap, ConcurrentHashMap 之间的区别

           大家好,今天为大家带来新的知识,  HashTable, HashMap, ConcurrentHashMap 之间的区别                                ...

  7. c#中Dictionary、ArrayList、Hashtable和数组 Array 的区别(转)

    C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩.虽然System.Array.Resize这个 ...

  8. 浅析几种数据集合(Dictionary、ArrayList、Hashtable和Array)的区别

    数组 Array: 数组是固定大小的,不能伸缩,要声明元素的类型. 数组可读可写不能声明只读数组:数组要有整数下标才能访问特定的元素 (强类型约束) ArrayList: 数组的复杂版本,动态数组类型 ...

  9. Hashtable和Dictionary 的区别

    Hashtable和Dictionary都是.Net下的表示键值对的集合,那么我们在使用中该选择Hashtable还是Dictionary?下边我们看看他们之间的区别: 1.Dictionary< ...

最新文章

  1. Linux上实现ssh免密码登陆远程服务器
  2. 每日一皮:你们都是怎么解压的?
  3. Spring Cloud/Dubbo 应用无缝迁移到 Serverless 架构
  4. java io字符输出流_JAVA IO 字符输入流与输出流总结说明
  5. 计算机系统与环境,COMPUTERS ENVIRONMENT AND URBAN SYSTEMS《计算机、环境与城市系统》SSCI论文投稿_万维书刊网...
  6. Java集合系列---LinkedHashMap源码解析
  7. securerandom java_Java 随机数 Random VS SecureRandom
  8. PIX525-IPSEC-×××配置
  9. 如何通过修改注册表来限定Win10 PIN的最小位数
  10. 【Arduino 101】霍尔编码器(增量,正交)与起停式闭环控制
  11. PSV最实用游戏使用攻略
  12. 收款码在线生成系统源码 无限制 (web微信、QQ、支付宝三合一收款码)
  13. excel中用正则匹配_Excel 使用正则表达式提取数据
  14. OROCOS之KDL(1)—— windows环境搭建篇
  15. 微信加不了公众号服务器繁忙,微信公众号系统繁忙是怎么回事
  16. javaSE探赜索隐之三--<类与对象的爱恨情仇下>
  17. jquery 输入框失去焦点时 (blur)事件
  18. android 微信分身开发,【技巧】2021安卓手机微信分身方法
  19. 计算机科学职业位置,计算机专业的职业生涯规划范文
  20. oracle数据库字符集子集与超集对应关系表表

热门文章

  1. 速修复!这个严重的Zlib内存损坏漏洞已存在17年!
  2. 固件攻击可在隐藏的SSD区域释放持久性恶意软件
  3. 微软披露首个由中国发现的蠕虫级漏洞 奇安信代码安全实验室获致谢
  4. Google Drive 被曝0day,可诱骗用户安装恶意软件
  5. Black Hat USA 2020 大会主议题大盘点(上)
  6. 云安全之虚拟机安全监控
  7. Socket开发框架之框架设计及分析
  8. ios上的pvr与png
  9. 在banana pi 上测试 《S2A》Snap/Scratch to Arduino
  10. Shell之分支结构和循环结构