HashTable_哈希表
namespace _02Hashtable { class Program { static void Main(string[] args) { //哈希表类似于字典,在查找元素的时候很快(自己的理解:哈希一般是基于数组的,只要知道数组的下表,就可以很快的存取该元素) //键值对是根据算法算出来的,键根据算法找到值 Hashtable hash = new Hashtable(); //通过键值来添加 hash.Add("撒旦发个", "第三个"); //都是object类型,什么都可以写 hash.Add(true, "1234"); //通过键来获取值 Console.WriteLine(hash[true].ToString()); //特点:1.键值对集合的“键”一定不能重复 hash.Add(true,"1234"); //判断一个集合中是否存在某个键 bool b = hash.ContainsKey(true); bool bb = hash.ContainsValue("1234"); //判断键值对中是否存在某个值 Console.WriteLine(b); Console.WriteLine(bb);
Hashtable 对象包含用键/值对表示的项目。键被用作索引,通过搜索其键,可以实现对值的快速搜索。
//遍历hashtable //1.遍历键 Console.WriteLine("===遍历键===="); foreach(var item in hash.Keys) { Console.WriteLine("键: {0}----->值: {1}", item, hash[item]); } // 2.直接遍历值 Console.WriteLine("=直接遍历值==="); foreach(var item in hash.Values) { Console.WriteLine("值: {0}", item); } //直接遍历键值对 Console.WriteLine("====直接遍历键值对===="); foreach(DictionaryEntry item in hash) { Console.WriteLine("键:{0} 值:{1}", item.Key, item.Value); } Console.ReadKey();
namespace 哈希表 { class Program { static void Main(string[] args) { //键值对集合 字典 object类型 object类型 //输出用foreach循环 Hashtable ht = new Hashtable(); ht.Add(1, "zhangsan"); ht.Add(2, 3); // 键+值 都是object类型 ht.Add(3, '男'); ht.Add(true, "正确的"); ht[6] = "新的赋值方式"; ht[1] = "干掉zhangsan"; if(!ht.ContainsKey("abc")) { ht.Add("abc", "bac"); } //键值可以是任何类型 不能局限于123456 //ht[i]=“值”这种方式其实是先进行一个判断 //若果原来没有键,则添加上值,如果有键,则把值给替换点 // 在键值对集合中,是根据键值去找值的 //键必须的唯一的,值可以重复的 //Console.WriteLine(ht[1]); //Console.WriteLine(ht[2]); //Console.WriteLine(ht[3]); //item 集合中的每一项 collection集合 //c#是强类型语言:代码中必须对每一个变量有一个明确的定义 //js是弱类型语言 //var 根据值来推断类型 foreach(var item in ht.Keys) //这是item代表键,ht.value 则item代表值 { Console.WriteLine("键是{0}==={1}", item, ht[item]); //倒叙的 } Console.ReadKey(); } } }
人各有命,上天注定,有人天生为王,有人落草为寇。脚下的路,如果不是你自己的选择,那么旅程的终点在哪,也没人知道。你会走到哪,会遇到谁,都不一定。