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();
        }
    }
}

 

posted @ 2017-10-25 21:49  ProZkb  阅读(281)  评论(0编辑  收藏  举报