文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>集合>哈希表类Hashtable和SortedList排序列表类

集合>哈希表类Hashtable和SortedList排序列表类

时间:2010-10-11  来源:草珊瑚

集合>哈希表类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);
        }
    }
}


集合>哈希表类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);
            }
        }
    }
}


集合>哈希表类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();
        }
    }
}


集合>哈希表类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();
        }
    }
}


 

 

集合>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);
            }
        }
    }
}


 

 
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载