• 【转】C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)


    1ArrayList

    ArrayList类主要用于对一个数组中的元素进行各种处理。在ArrayList中主要使用AddRemoveRemoveAtInsert四个方法对栈进行操作。Add方法用于将对象添加到 ArrayList 的结尾处;Remove方法用于从 ArrayList 中移除特定对象的第一个匹配项;RemoveAt方法用于移除 ArrayList 的指定索引处的元素;Insert方法用于将元素插入 ArrayList 的指定索引处。

       示例    ArrayList的使用

    示例将介绍如何创建一个ArrayList,如何添加项、移除项以用如何遍历ArrayList。程序代码如下:

      

     

     

    using System.Collections;//引入命名空间
    namespace _4
    {
        class ArrayListTest
        {
            static void Main(string[] args)
            {
                ArrayList arrlist = new ArrayList();//实例化一个ArrayList对象
                //使用Add方法向ArrayList中添加元素,将元素添加到ArrayList对象的末尾
                arrlist.Add("苹果");
                arrlist.Add("香蕉");
                arrlist.Add("葡萄");
                foreach (int n in new int[3] { 0, 1, 2 })
                {
                    arrlist.Add(n);
                }
                //移除值为的第一个元素
                arrlist.Remove(0);
                //移除当前索引为的元素,即第个元素
                arrlist.RemoveAt(3);
                //在指定索引处添加一个元素
                arrlist.Insert(1, "apple");
                //遍历ArrayList,并输出所有元素
                for (int i = 0; i < arrlist.Count; i++)
                {
                    Console.WriteLine(arrlist[i].ToString());
                }
            }
        }
    }

    2Stack

    Stack(堆栈)类主要实现了一个LIFOLast In First Out,后进先出)的机制。元素从栈的顶部插入(入栈操作),也从堆的顶部移除(出栈操作)。在Stack中主要使用PushPopPeek三个方法对栈进行操作。Push方法用于将对象插入 Stack 的顶部;Pop方法用于移除并返回位于 Stack 顶部的对象;Peek方法用于返回位于 Stack 顶部的对象但不将其移除。

       示例     Stack的使用

    示例将介绍如何创建一个Stack,如何添加项、移除项以用如何遍历Stack。程序代码如下:

      

    using System.Collections;//引入命名空间
    namespace _5
    {
        class StackTest
        {
            static void Main(string[] args)
            {
                //实例化Stack类的对象
                Stack stack = new Stack();
                //入栈,使用Pust方法向Stack对向中添加元素
                for (int i = 1; i < 6;i++)
                {
                    stack.Push(i);
                    Console.WriteLine("{0}入栈",i);
                }
                //返回栈顶元素
                Console.WriteLine ("当前栈顶元素为:{0}",stack.Peek().ToString ());
                //出栈
                Console.WriteLine("移除栈顶元素:{0}", stack.Pop().ToString());
                //返回栈顶元素
                Console.WriteLine("当前栈顶元素为:{0}", stack.Peek().ToString());
                //遍历栈
                Console.WriteLine("遍历栈");
                foreach (int i in stack)
                {
                    Console.WriteLine(i);
                }
                //清空栈
                while(stack .Count!=0)
                {
                    int s = (int)stack.Pop();
                    Console.WriteLine("{0}出栈",s);
                }
            }
        }

     

    3Queue

    Queue(队列)类主要实现了一个FIFOFirst In First Out,先进先出)的机制。元素在队列的尾部插入(入队操作),并从队列的头部移出(出队操作)。在Queue中主要使用EnqueueDequeuePeek个方法对队进行操作。Enqueue方法用于将对象添加到 Queue 的结尾处;Dequeue方法移除并返回位于 Queue 开始处的对象;Peek方法用于返回位于 Queue 开始处的对象但不将其移除。

       示例     Queue的使用

    示例将介绍如何创建一个Queue,如何添加项、移除项以用如何遍历Queue。程序代码如下:

      

    using System.Collections;//引入命名空间
    namespace _6
    {
        class QueueTest
        {
            static void Main(string[] args)
            {
                //实例化Queue类的对象
                Queue queue = new Queue();
                //入栈,使用Pust方法向Stack对向中添加元素
                for (int i = 1; i < 6; i++)
                {
                    queue .Enqueue(i);
                    Console.WriteLine("{0}入队", i);
                }
                //返回队开始处的元素
                Console.WriteLine("当前队开始处元素为:{0}", queue.Peek().ToString());
                //遍历队
                Console.WriteLine("遍历队");
                foreach (int i in queue)
                {
                    Console.WriteLine(i);
                }
                //清空栈
                while (queue.Count != 0)
                {
                    int q = (int)queue.Dequeue ();
                    Console.WriteLine("{0}出队", q);
                }
            }
        }
    }

    4Hashtable

    Hashtable(哈希表)是一种键/值对集合,这些键/值对根据键的哈希代码进行组织。在一个Hashtable中插入一对Key/Value时,它自动将Key值映射到Value,并允许获取与一个指定的Key相关联的value。在Hashtable中主要使用AddRemove两个方法对哈希表进行操作。Add方法用于将带有指定键和值的元素添加到 Hashtable 中;Remove方法用于从 Hashtable 中移除带有指定键的元素。

       示例    Hashtable的使用

    示例将介绍如何创建一个Hashtable,如何添加项、移除项以用如何遍历Hashtable。程序代码如下:

      

     

     

     

    using System.Collections;//引入命名空间
     
    namespace _7
    {
        class HashtableTest
        {
            static void Main(string[] args)
            {
                //实例化Hashtable类的对象
                Hashtable student=new Hashtable ();
                //向Hashtable中添加元素
                student.Add("S1001","Tom");
                student.Add("S1002", "Jim");
                student.Add("S1003", "Lily");
                student.Add("S1004", "Lucy");
                //遍历Hashtable
                foreach (DictionaryEntry element in student)
                {
                    string id = element.Key.ToString ();
                    string name = element.Value.ToString ();
                    Console.WriteLine("学生的ID:{0}   学生姓名:{1}",id,name);
                }
                //移除Hashtable中的元素
                student.Remove("S1003");
            }
        }
    }
      
    说明:Hashtable不能包含重复的key。如果调用Add 方法来添加一个keys数组中已有的key,就会抛出异常。为了避免这种情况,可以使用ContainsKey方法来测试哈希表中是否包含一个特定的Key

    5SortedList

    SortedList类也是键/值对的集合,但与哈希表不同的是这些键/值对是按键排序,并可以按照键和索引访问。在SortedList中主要使用AddRemoveRemoveAt三个方法对SortedList进行操作。Add方法用于将带有指定键和值的元素添加到 SortedList中;Remove方法用于从 SortedList 中移除带有指定键的元素;RemoveAt方法用于移除 SortedList 的指定索引处的元素。

       示例    SortedList的使用

    示例将介绍如何创建一个SortedList,如何添加项、移除项以用如何遍历SortedList。程序代码如下:

      

    using System.Collections;//引入命名空间
     
    namespace _8
    {
        class SortedListTest
        {
            static void Main(string[] args)
            {
                //实例化SortedListTest类的对象
                SortedList student = new SortedList();
                //向SortedList中添加元素
                student.Add("S1001", "Tom");
                student.Add("S1003", "Jim");
                student.Add("S1002", "Lily");
                student.Add("S1004", "Lucy");
                //遍历SortedList
                foreach (DictionaryEntry element in student)
                {
                    string id = element.Key.ToString();
                    string name = element.Value.ToString();
                    Console.WriteLine("学生的ID:{0}   学生姓名:{1}", id, name);
                }
                //移除SortedList中key为“S1003”的元素
                student.Remove("S1003");
                //移除SortedList中索引为“”的元素,即第一个元素
                student.RemoveAt(0);
            }
        }
    }

     

        说明:同样SortedList也不能包含重复的key。而且使用foreach语句遍历SortedList对象时,会返回DictionaryEntry对象。该对象将根据Key属性,以排序后的顺序返回

    
  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/5tao/p/1961936.html
Copyright © 2020-2023  润新知