Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1536297
  • 博文数量: 113
  • 博客积分: 3526
  • 博客等级: 中校
  • 技术积分: 1815
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-08 09:46
个人简介

记录总结自己的工作

文章分类

全部博文(113)

文章存档

2015年(19)

2014年(10)

2013年(6)

2012年(16)

2011年(24)

2010年(21)

2009年(17)

分类: Java

2010-07-09 09:43:04

//哈希表,名-值对。类似于字典(比数组更强大)。哈希表是经过优化的,访问下标的对象先散列过。

//如果以任意类型键值访问其中元素会快于其他集合。GetHashCode()方法返回一个int型数据,

//使用这个键的值生成该int型数据。哈希表获取这个值最后返回一个索引,表示带有给定散列的数

//据项在字典中存储的位置。 在.NET Framework中,HashtableSystem.Collections命名空间

//提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key

//是区分大小写;value用于存储对应于key的值。Hashtablekeyvalue键值对均为object类型,

//所以Hashtable可以支持任何类型的keyvalue键值对.

//1.使用hashtable.需要添加System.Collections的引用

//2.添加元素

 

Hashtable ht =new Hashtable();

 

ht.Add(key,value);// key,value可以是任何类型

 

//如果key有重复会掷出运行时异常,你可以这样处理

if(ht.Contains(key)==false)

{

 

ht.Add(key,value);// 不存在则添加

 

}

//也可以这样处理,效率要高些

 

Try

{

    ht.Add(key,value);

}

Catch

{

    // 不处理重复异常

}

 

//3.删除元素

 

ht.Remove(key);

 

//4.删除所有

 

ht.Clear();

 

//5.判断键是否已经存在

 

ht.Contains(key) // 这个刚才已经用过了

 

//6.遍历键

 

foreach(Object key in ht.Keys)

{

}

 

//7.遍历值

 

foreach(Object value in ht.Values)

{

 

}

 

//8.同时遍历键值对

 

foreach(DictionaryEntry de in ht)

{

        Console.WriteLine(de.Key);// 取得键

        Console.WriteLine(de.Value);// 取得值

}

 

//9.排序输出(对值也是一样处理)

ArrayList akeys = new ArrayList(ht.Keys);

akeys.Sort();

//示例:

// Creates and initializes a new Hashtable.

Hashtable myHT = new Hashtable();

myHT.Add("one", "The");

myHT.Add("two", "quick");

myHT.Add("three", "brown");

myHT.Add("four", "fox");

 

 

           

            // Displays the Hashtable.

Console.WriteLine("The Hashtable contains the following:");

PrintKeysAndValues(myHT);

 

}

 

        public static void PrintKeysAndValues(Hashtable myHT)

        {

            foreach (string s in myHT.Keys)

                Console.WriteLine(s);

            Console.WriteLine(" -KEY- -VALUE-");

            foreach (DictionaryEntry de in myHT)

                Console.WriteLine(" {0}: {1}", de.Key, de.Value);

            Console.WriteLine();

        }

=======================================================

例子

        Hashtable ht = new Hashtable();
        ht.Add("Test1",test1.Text.Trim());
        ht.Add("Test2",test2.Text.Trim());
        ht.Add("Test3",test3.Text.Trim());

        int num = ht.Count;
        IDictionaryEnumerator enumerator = ht.GetEnumerator();
        object[] key = new object[num];
        object[] val = new object[num];
        for (int i = 0; i < num; i++)
        {
            enumerator.MoveNext();
            key[i] = enumerator.Key;
            val[i] = enumerator.Value;
            test4.Text = val[i].ToString() + test4.Text;
            test5.Text = ht.Count.ToString();
        }

转自:http://qddoudouqd.blog.hexun.com/48090307_d.html

阅读(5804) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~