相关文章推荐
无邪的丝瓜  ·  Cryo-Electron ...·  1 年前    · 
耍酷的梨子  ·  javascript - ...·  1 年前    · 
直爽的抽屉  ·  javascript - How to ...·  1 年前    · 
冷冷的牛肉面  ·  响应 CheckBox 单击 - ...·  1 年前    · 
逼格高的领结  ·  javascript - jQuery ...·  1 年前    · 

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

Hashtable 和 Dictionary 都是一个键值对的集合
其中
Hashtable 包含的单个键值对为 DictionaryEntry 结构
Dictionary 包含的单个键值对为 KeyValuePair 结构

共同点:
1、都只能有唯一的键(Key),如果要增加同样的键会报错,但是错误提示不一样:
这个是Hashtable报错:

这个是Dictionary报错:

2、键不能为空
3、不同的键可以对应相同的值

不同点:
1、Hashtable Add方法键值参数类型都是Object,Dictionary Add方法需要和构造函数(New)时的参数类型对应。由于涉及到装箱和拆箱,所以HashTable在数据量较大的时候会比Dictionary慢。

2、Hashtable在枚举输出的时候无顺序,Dictionary在枚举输出的时候按照增加顺序输出。

3、DictionaryEntry的键值是可以读写,但是KeyValuePair的键值只读


最后是一个DictionaryEntry操作的示例:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim aa As DictionaryEntry
        aa.Key = 1
        aa.Value = "122"
        txtInfo.Text = aa.Key & ":" & aa.Value & ControlChars.CrLf
        txtInfo.Text &= "=========" & ControlChars.CrLf
        Dim cc As New clsStudent
        cc.Name = "姓名"
        cc.ID = 12
        aa.Key = cc
        aa.Value = "这是一个测试"
        Dim dd As clsStudent
        dd = CType(aa.Key, clsStudent)
        txtInfo.Text &= ControlChars.CrLf & dd.Name & ":" & aa.Value
    End Sub
Public Class clsStudent
    Public Property Name As String
    Public Property ID As Integer
End Class

由于.net平台下C#和vb .NET 很相似,本文也可以为C#爱好者提供参考。

学习更多vb .net 知识,请参看 vb.net 教程 目录

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。Hashtable 和 Dictionary 都是一个键值对的集合其中Hashtable 包含的单个键值对为 DictionaryEntry 结构Dictionary 包含的单个键值对为 KeyValuePair 结构共同点:1、都只能有唯一的键(Key),如果要增加同样的键会报错,... Imports System.Net Imports System.Text.RegularExpressions Imports System.Collections.Generic Class Dictionary SortBy Value Shared Sub makeDict(ByVal d...   System.Collections.Generic(程序集:mscorlib)    1)、从一组键( Key )到一组值( Value )的映射,每一个添加项都是由一个值及其相关连的键组成    2)、任何键都必须是唯一的    3)、键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值
1. Hashtable 哈希表( HashTable )表示键/值对的集合。在.NET Framework中, Hashtable 是System.Collections命名空间提供的一个容器,用于处理和表现类似 key - value 的键值对,其中 key 通常可用来快速查找,同时 key 是区分大小写; value 用于存储对应于 key 的值。 Hashtable key - value 键值对均为object类型,所以 Hashtable 可以支持任何类型的 key value 键值对,任何非 null 对象都可以用作键或值。 2.Hash
今天来探究哈希表,.net内置的哈希表容器是 Hashtable 类,而 Dictionary <T Key ,T Value >是对应的泛型哈希表. 哈希表- Hashtable 的实例化 一般我们实例化ArrayList或List<T>的时候,如果不指定容量,则其内部是赋值为一个静态的空数组。当有添加操作时,会实例化为一个长度为4的数组,如果容量满了以后,再添加,就会自动扩充为两倍的容...
Hashtable Dictionary 都是.Net下的表示键值对的集合,那么我们在使用中该选择 Hashtable 还是 Dictionary ?下边我们看看他们之间的区别: 1、 Dictionary 在使用中是顺序存储的,而 Hashtable 由于使用的是哈希算法进行数据存储,是无序的。 2、 Dictionary key value 是泛型存储, Hashtable key value 都是object
文章目录 Dictionary 的描述一、pandas是什么?二、 Dictionary 常用用法1.创建及初始化2.添加元素2.遍历(1) 遍历 Key (2) 遍历 Value 总结 Dictionary 的描述 1、从一组键( Key )到一组值( Value )的映射,每一个添加项都是由一个值及其相关连的键组成 2、任何键都必须是唯一的 3、键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值 4、 Key Value 可以是任何类型(string,int,custom class 等) 一、pan
//在 .NET种又2种集合 一种是 VB的 collection 集合 另一种是 .NET Framework 的泛型集合 ////VB的collection集合 和 .NET下的泛型集合 泛型集合限定了 键值对的类型 1. VB的collection集合 Module Module1 Sub Main() Dim col As...
HashMap和 Hashtable 都是Java中的集合类,用于存储键值对。它们的主要区别在于线程安全性和性能。 Hashtable 是线程安全的,因为它的所有方法都是同步的。这意味着在多线程环境中使用 Hashtable 时,不需要额外的同步措施。但是,由于同步的开销, Hashtable 的性能可能会受到影响。 HashMap不是线程安全的,因为它的方法不是同步的。这意味着在多线程环境中使用HashMap时,需要采取额外的同步措施,例如使用ConcurrentHashMap。但是,由于没有同步的开销,HashMap的性能通常比 Hashtable 更好。 另外, Hashtable 不允许null键或值,而HashMap允许null键和值。 综上所述,如果需要线程安全的集合类,可以使用 Hashtable ;如果需要更好的性能,可以使用HashMap。