zoukankan      html  css  js  c++  java
  • Dictionary和Hashtable的一些异同

    DictionaryHashtable 区别:

    DictionaryHashtable 区别
    Dictionary Hashtable 
    支持范型 不支持
    需要自己做线程同步 通过调用 Synchronized() 方法可以获得线程安全的类型
    枚举类型是KeyValuePair 枚举类型是DictionaryEntry
    .Net 2.0开始有 .Net 1.0开始有
    System.Collections.Generic命名空间下 System.Collections命名空间下
    获取同一个不存在的key时抛出异常 获取同一个不存在的key时返回NULL
    值类型不需要装箱/拆箱,可能会更快些 值类型value types需要装箱/拆箱boxing/unboxing

    相同点

    内部都是hashtable实现,通过key访问数据比较快

    都需要不可变的,唯一的key

    key都需要有自己的GetHashCode()方法

     

    其他类似的.Net 集合(用于替代Dictionary和Hashtable的备选项)

    ConcurrentDictionary  - 用于多并发、线程安全的字典

    HybridDictionary      - System.Collections.Specialized命名空间下,优化了性能(在集合较小时,使用 ListDictionary 来实现 IDictionary,然后当集合变大时,切换到Hashtable。)

    OrderedDictionary    - System.Collections.Specialized命名空间下,值可以通过数字索引访问,因为元素添加的时候已经被指定位置了。public void Insert(int index, object key, object value);

    SortedDictionary      - 元素插入时自动的被排序

    StringDictionary      - System.Collections.Specialized命名空间下,将键和值强类型化为字符串而不是对象,对做相应的优化。

     

  • 相关阅读:
    xml/xslt常用转义字符
    用ScriptManager实现Web服务的异步调用
    声明静态方法和实例方法的原则
    http request header 中的host行的作用
    获取客户端数据
    HTTP 处理程序(HttpHandlers)
    display与visibility
    会话管理
    ASP.NET 管道
    HttpContext, HttpRequest, HttpResponse
  • 原文地址:https://www.cnblogs.com/harryhan1983/p/4624152.html
Copyright © 2011-2022 走看看