集合>哈希表类Hashtable和SortedList排序列表类
集合>哈希表类Hashtable
Hashtable一种键值对的集合 ,哈希表内部的排列是无序的,而且哈希表没有提供排序方法。
集合>哈希表类Hashtable>构造普通哈希表
代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//使用所有默认值构建哈希表实例
Hashtable ht = new Hashtable();
//指定哈希表实例的初始容量为20个元素
Hashtable ht1 = new Hashtable(20);
//指定初始容量为20个元素,加载因子为0.8的哈希表实例,加载因子大,哈希表自动扩展容量也大。
Hashtable ht2 = new Hashtable(20, 0.8f);
//实例化一个SortedList。
SortedList sl = new SortedList();
sl.Add("键一", "键值一");
sl.Add("键二", "键值二");
sl.Add("键三", "键值三");
//传入实现了IDictionary接口的参数创建哈希表。
Hashtable ht3 = new Hashtable(sl);
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//使用所有默认值构建哈希表实例
Hashtable ht = new Hashtable();
//指定哈希表实例的初始容量为20个元素
Hashtable ht1 = new Hashtable(20);
//指定初始容量为20个元素,加载因子为0.8的哈希表实例,加载因子大,哈希表自动扩展容量也大。
Hashtable ht2 = new Hashtable(20, 0.8f);
//实例化一个SortedList。
SortedList sl = new SortedList();
sl.Add("键一", "键值一");
sl.Add("键二", "键值二");
sl.Add("键三", "键值三");
//传入实现了IDictionary接口的参数创建哈希表。
Hashtable ht3 = new Hashtable(sl);
}
}
}
集合>哈希表类Hashtable>获取哈希表值
代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace useHashtable
{
class Program
{
static void Main(string[] args)
{
//初始化哈希表
Hashtable hl = new Hashtable();
//使用Add方法向哈希表添加元素。
hl.Add("键一", "键值一");
hl.Add("键二", "键值二");
hl.Add("键三", "键值三");
hl.Add("键四", "键值四");
hl.Add("键五", "键值五");
hl.Add("键六", "键值六");
hl.Add("键七", "键值七");
DisplayResult(hl);
Console.WriteLine("通过键获取键值:"+ hl["键一"]);
Console.WriteLine("移除哈希表中的元素");
hl.Remove("键二");
Console.WriteLine("哈希表中的元数总数是:" + hl.Count);
DisplayResult(hl);
Console.ReadLine();
}
static void DisplayResult(Hashtable tl)
{
foreach (DictionaryEntry de in tl)
{
Console.WriteLine("哈希表中的键:{0},对应的值{1}",de.Key,de.Value);
}
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace useHashtable
{
class Program
{
static void Main(string[] args)
{
//初始化哈希表
Hashtable hl = new Hashtable();
//使用Add方法向哈希表添加元素。
hl.Add("键一", "键值一");
hl.Add("键二", "键值二");
hl.Add("键三", "键值三");
hl.Add("键四", "键值四");
hl.Add("键五", "键值五");
hl.Add("键六", "键值六");
hl.Add("键七", "键值七");
DisplayResult(hl);
Console.WriteLine("通过键获取键值:"+ hl["键一"]);
Console.WriteLine("移除哈希表中的元素");
hl.Remove("键二");
Console.WriteLine("哈希表中的元数总数是:" + hl.Count);
DisplayResult(hl);
Console.ReadLine();
}
static void DisplayResult(Hashtable tl)
{
foreach (DictionaryEntry de in tl)
{
Console.WriteLine("哈希表中的键:{0},对应的值{1}",de.Key,de.Value);
}
}
}
}
集合>哈希表类Hashtable>哈希表排序
代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace HashSort
{
class Program
{
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
ht.Add("key1", "this is value1");
ht.Add("key3", "this is vlaue3");
ht.Add("key2", "this is value2");
ht.Add("key4", "this is value4");
Console.WriteLine("排序前的哈希键值顺序为:");
foreach (DictionaryEntry de in ht)
{
Console.WriteLine("键{0},值{1}", de.Key, de.Value);
}
ICollection keys = ht.Keys;
ArrayList al = new ArrayList(keys);
al.Sort();
Console.WriteLine("排序后的哈希键值顺序为:");
foreach (object key in al)
{
Console.WriteLine("键{0},值{1}", key, ht[key]);
}
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace HashSort
{
class Program
{
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
ht.Add("key1", "this is value1");
ht.Add("key3", "this is vlaue3");
ht.Add("key2", "this is value2");
ht.Add("key4", "this is value4");
Console.WriteLine("排序前的哈希键值顺序为:");
foreach (DictionaryEntry de in ht)
{
Console.WriteLine("键{0},值{1}", de.Key, de.Value);
}
ICollection keys = ht.Keys;
ArrayList al = new ArrayList(keys);
al.Sort();
Console.WriteLine("排序后的哈希键值顺序为:");
foreach (object key in al)
{
Console.WriteLine("键{0},值{1}", key, ht[key]);
}
Console.ReadLine();
}
}
}
集合>哈希表类Hashtable>哈希表搜索
代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace HashtableSearch
{
class Program
{
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
ht.Add("key1", "this is value1");
ht.Add("key3", "this is vlaue3");
ht.Add("key2", "this is value2");
ht.Add("key4", "this is value4");
ICollection keys = ht.Keys;
ArrayList al = new ArrayList(keys);
al.Sort();
//在这里使用ArrayList的BinarySearch搜索指定键值的值。
int searchResult = al.BinarySearch("key3");
if (searchResult > 0)
{
Console.WriteLine("搜索到的结果为:键{0},值{1}",al[searchResult],ht[al[searchResult]]);
}
else
{
Console.WriteLine("没有搜索到有效的结果值");
}
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace HashtableSearch
{
class Program
{
static void Main(string[] args)
{
Hashtable ht = new Hashtable();
ht.Add("key1", "this is value1");
ht.Add("key3", "this is vlaue3");
ht.Add("key2", "this is value2");
ht.Add("key4", "this is value4");
ICollection keys = ht.Keys;
ArrayList al = new ArrayList(keys);
al.Sort();
//在这里使用ArrayList的BinarySearch搜索指定键值的值。
int searchResult = al.BinarySearch("key3");
if (searchResult > 0)
{
Console.WriteLine("搜索到的结果为:键{0},值{1}",al[searchResult],ht[al[searchResult]]);
}
else
{
Console.WriteLine("没有搜索到有效的结果值");
}
Console.ReadLine();
}
}
}
集合>SortedList排序列表类
SortedList对象是可以排序的字典对象。与哈希表不同的是,SortedList内部的键是一个数组,值也是一个数组。这两个数组有初始容量,可自动扩充,SortedList根据键来排序,所键要实现IComparable接口。
集合>SortedList排序列表类>创建和操作
代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//默认值构建
SortedList sl=new SortedList();
sl.Add("键1", "键值一");
sl.Add("键2", "键值二");
sl.Add("键3", "键值三");
sl.Add("键4", "键值四");
sl.Add("键5", "键值六");
sl.Add("键6", "键值七");
Console.WriteLine("排序字典的最初的初始化列表为:");
DisplayResult(sl);
sl.Remove("键5");
Console.WriteLine("键6的键值是:{0}", sl["键6"]);
Console.ReadLine();
}
static void DisplayResult(SortedList sl)
{
foreach (DictionaryEntry de in sl)
{
Console.WriteLine("键:{0},键值为:{1}", de.Key, de.Value);
}
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//默认值构建
SortedList sl=new SortedList();
sl.Add("键1", "键值一");
sl.Add("键2", "键值二");
sl.Add("键3", "键值三");
sl.Add("键4", "键值四");
sl.Add("键5", "键值六");
sl.Add("键6", "键值七");
Console.WriteLine("排序字典的最初的初始化列表为:");
DisplayResult(sl);
sl.Remove("键5");
Console.WriteLine("键6的键值是:{0}", sl["键6"]);
Console.ReadLine();
}
static void DisplayResult(SortedList sl)
{
foreach (DictionaryEntry de in sl)
{
Console.WriteLine("键:{0},键值为:{1}", de.Key, de.Value);
}
}
}
}