您的位置:首页 > 编程语言 > C#

C#学习笔记08:集合

2013-07-31 17:50 288 查看

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 =
newArrayList();
          

            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 =
newStack();
           
for (int i = 0; i < 10;i++)
                stack.Push(i);
           
while (stack.Count > 0)
            {
               
Console.Write(stack.Pop()+ "  ");
            }

 6、Queue队列的使用

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

  
    
staticvoid Main(string[] args)
        {
           
Queue queue = newQueue();
           
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查找元素值

     
staticvoid Main(string[] args)
        {
           
Hashtable ht = newHashtable();
            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使用

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

本章练习题下载地址:点此下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# Unity3D