C#学习笔记08:集合

1、数据存储形式(缓存):

  1)顺序存储(线性存储):数组、ArrayList

  2) 链式存储:有利于元素增加与删除。

  3) 哈希存储:每个元素通过其值计算存储(Hash)地址.HashTable

  4) Map存储: 元素由key与value,每个元素key通过其值计算存储(Hash)地址。通过key查找访问元素,key-value映射。

2、c#集合框架

数组类型:ArrayList(动态数组), 工具类Array(静态函数)

堆栈类型:Stack(LIFO),Queue(FIFO)

键/值类型:HashTable,SortedList

强类型集合类型:DictionaryBase,CollectionBase

3、工具类Array使用

  int[] x={1,2,3,4,5,6};

           // Console.WriteLine(Array.BinarySearch(x, 6));

    Array.Reverse(x);

    for(inti=0;i<x.Length;i++)

        Console.WriteLine(x[i]);

 4、ArrayList的使用

动态数组,可以放置任意对象,自动调整长度。

ArrayList arr = new ArrayList();

          

            arr.Add(10);//装箱

            arr.Add("c#");

            arr.Add(12.7);

            //按照下标读取或删除

            for(inti=0;i<arr.Count;i++)

                Console.Write(arr[i]+" ");

            Console.WriteLine();

             foreach(object value in arr)

                 Console.Write(value + " ");

            //移除

             //arr.RemoveAt(0);

             int c = arr.Count;

             for (int i = 0; i < c; i++)

                 arr.RemoveAt(0);

             //arr.Clear();

             Console.WriteLine();

             foreach (object value in arr)

                 Console.Write(value + " ");

            Console.ReadLine();

5、Stack栈的使用

Stack:判断栈是否为空,入栈,出栈,读取栈顶,长度

  Stack stack = new Stack();

            for (int i = 0; i < 10;i++)

                stack.Push(i);

            while (stack.Count > 0)

            {

                Console.Write(stack.Pop()+ "  ");

            }

 6、Queue队列的使用

Queue:长度,入队,出队,清空队列,

       static void Main(string[] args)

        {

            Queue queue = new Queue();

            for (int i = 0; i < 10;i++)

                queue.Enqueue(i);

            object[]arr=queue.ToArray();

            for (int i = 0; i <arr.Length; i++)

             Console.Write(   arr[i]+"");

            Console.ReadLine();

        }

  7、Hashtable的使用:每一个元素都由Key与Value构成。依据Key计算存储地址。依据key查找元素值

      static void Main(string[] args)

        {

            Hashtable ht = new Hashtable();

            ht.Add("200001","zhou");

            ht.Add("200002","zhang");

            ht.Add("200003","liu");

            object name = ht["200003"];//依据Key读写value值

            foreach(object key in ht.Keys)

            {

                Console.WriteLine(key+" "+ht[key]);

            }

             Console.ReadLine();

        }

 8、强类型集合

1) List使用

   static void Main(string[] args)

        {

            List<string> list = newList<string>();

           //声明list集合中元素类型为string

           //List<Student> slist = new List<Student>();

           // list.Add();

            LinkedList<string> linklist = newLinkedList<string>();

            linklist.AddFirst("a");

            linklist.AddLast("b");

            HashSet<int> hs = newHashSet<int>();

 

            Console.ReadLine();

        }

本章练习题下载地址:点此下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值