三,哈希表
-
什么是哈希表
它使用键来访问集合中的元素。当您使用键访问元素时,则使用哈希表,而且您可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。Hashtable类常用的属性 -
为什么会有HashTable
在ArrayList集合中,使用索引访问元素,如果不能确切知道索引的值,访问就比较困难,而HashTable能实现通过一个键来访问一个值,而不需要索引的值 -
什么情况下使用哈希表
(1)某些数据会被高频率查询
(2)数据量大
(3)查询字段包含字符串类型
(4)数据类型不唯一 -
Hashtable类常用的属性
属性 | 描述 |
---|---|
Count | 获取 Hashtable中包含的键值对个数。 |
IsFixedSize | 获取一个值,表示 Hashtable是否具有固定大小。 |
IsReadOnly | 获取一个值,表示Hashtable是否只读。 |
Item | 获取或设置与指定的键相关的值。 |
Keys | 获取一个 ICollection,包含 Hashtable 中的键。 |
Values | 获取一个 ICollection,包含 Hashtable 中的值。 |
- Hashtable类常用的方法
方法名 | 描述 |
---|---|
public virtual void Add( object key, object value ); | 向Hashtable添加一个带有指定的键和值的元素。 |
public virtual void Clear(); | 从Hashtable中移除所有的元素。 |
public virtual bool ContainsKey( object key ); | 判断Hashtable是否包含指定的键。 |
public virtual bool ContainsValue( object value ); | 判断Hashtable是否包含指定的值。 |
public virtual void Remove( object key ); | 从Hashtable中移除带有指定的键的元素。 |
Hashtable table = new Hashtable();
table.Add(1,"张三");
table.Add(2, "李四");
table.Add("1", "张三");
//声明了一个int作为键类型,string作为值类型的键值对集合
Dictionary<int, string> list = new Dictionary<int, string>();
list.Add(1,"zs");
foreach (DictionaryEntry item in table)
{
Console.WriteLine(item.Key+":"+item.Value);
}