using System;
using System.Collections;
namespace program
{
class wangjun
{
/// <summary>
/// 对哈希表进行遍历,使用了两种 方法(foreach dictionaryentry和 foreach string)
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
//建立哈希表对象
Hashtable hs = new Hashtable();
hs.Add("13", "1234123");
hs.Add("2", "sadfgasd");
hs.Add("4", "23123fs");
hs.Add("3", "12312sdf");
hs.Add("5", "sdfgasdfg");
//删除元素
hs.Remove("13");
//使用字典方法遍历哈希表
foreach (DictionaryEntry dic in hs)
{
Console.WriteLine("key={0} value={1}",(string)dic.Key,(string)dic.Value);
}
//空白两行
for (int i = 0; i < 2; i++)
{
Console.WriteLine();
}
//建立arraylist对象并得到了哈希表的键的集合实例,用于对哈希表的的排序+遍历
ArrayList al = new ArrayList(hs.Keys);
//对arraylist中的值(哈希表键)进行名称排序
al.Sort();
//使用foreach进行遍历
foreach (string s in al)
{
//这里用到了(string)hs[s]因为哈希表存放的是object所以这里要进行强制转换
Console.WriteLine("key={0} value={1}",s,(string)hs[s]);
}
//空白两行
for (int i = 0; i < 2; i++)
{
Console.WriteLine();
}
//对arraylist的值(哈希表的键)进行反向排序
al.Reverse();
foreach (string s in al)
{
//这里用到了(string)hs[s]因为哈希表存放的是object所以这里要进行强制转换
Console.WriteLine("key={0} value={1}",s,(string)hs[s]);
}
}
}
}
(三)Stack:栈,表示对象的简单的后进先出非泛型集合。Push方法入栈,Pop方法出栈。
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Stack sk = new Stack();
Stack sk2 = new Stack();
foreach (int i in new int[4] { 1, 2, 3, 4 })
{
sk.Push(i);//入栈
sk2.Push(i);
}
foreach (int i in sk)
{
Console.WriteLine(i);//遍历
}
sk.Pop();//出栈
Console.WriteLine("Pop");
foreach (int i in sk)
{
Console.WriteLine(i);
}
sk2.Peek();//弹出最后一项不删除
Console.WriteLine("Peek");
foreach (int i in sk2)
{
Console.WriteLine(i);
}
}
}
}
(四)哈希表
一、哈希表(Hashtable)简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.
二、哈希表的简单操作
在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable(); //创建一个Hashtable实例
ht.Add("E","e");//添加key/value键值对
ht.Add("A","a");
ht.Add("C","c");
ht.Add("B","b");
string s=(string)ht["A"];
if(ht.Contains("E")) //判断哈希表是否包含特定键,其返回值为true或false
Console.WriteLine("the E key:exist");
ht.Remove("C");//移除一个key/value键值对
Console.WriteLine(ht["A"]);//此处输出a
ht.Clear();//移除所有元素
Console.WriteLine(ht["A"]); //此处将不会有任何输出
}
}