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