七、数组和集合(一维数组和二维数组的声明以及使用,ArrayList类,HashTable,List,Directory字典等常用集合(泛型和非泛型))

数组

数组就是一个集合,同一数据类型的一组值 ,是数量固定的相同类型元素的组合 。

数组属于引用类型 数组的索引从0开始,就是说如果你想访问一个数组元素,你就得通过,相应元素的整数索引号访问。

定义一维数组:数组类型[ ]  数组名=new 数据类型[元素个数];

int [ ] arrMyInt= new int [10];//定义了一个数组

//该数组的数据类型是int,具有10个元素。

int [ ] arrMyInt; //声明一维数组

arrMyInt =new int [10]; //给数组分配存储空间

初始化数组—动态初始化:在初始化数组的时候后必须用new关键字,同时初始化数组时必须声明数组的大小

int[ ] arrIntArray;

arrIntArray=new int[3];//可以容纳3个整数

arrIntArray[0]=12;//为数组的第一个元素赋值

arrIntArray[1]=44;//为数组的第二个元素赋值

arrIntArray[2]=6;

也可以将定义和动态初始化写在一起:string[ ] arrMyString=new string[3]{“as”,”vb”,”23”};

初始化数组—静态初始化:用这种方法对数组进行初始化时,无须说明数组元素的个数,只需按顺序列出数组中的全部元素即可,系统会自动计算并分配数组所需的内存空间。

int[ ] arrPoints={-45,9,29,32,46}; //定义了一个5个元素的整型数组

char[ ] arrLetters={'a','b','c','d'}; //定义了一个4个元素的字符型数组

数组的初始值

当你添加一个值类型到数组初始化时值是

数值类型被初始化为0

布尔类型被初始化为false

字符类型被初始化为null

枚举类型被初始化为0

二维数组

//二维数组的定义和初始化
double[ , ]  arrDouble=new double[ 3, 4 ] ;
//在动态初始化二维数组时,也可以直接为其赋予初始化值。
int[ , ]  arrInt=new int[ , ]{{1, 3}, {2, 4}, {5,6}};
//二维数组也可以进行静态初始化 
har[ , ]  chrLetter={{‘a’, ‘b’, ‘c’}, {‘x’, ‘y’, ‘z’}};

ArrayList类

动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。

但是,与数组不同的是,可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。

它也允许在列表中进行动态内存分配、增加、搜索、排序各项。

 ArrayList al = new ArrayList();

            Console.WriteLine("Adding some numbers:");
            al.Add(45);
            al.Add(78);
            al.Add(33);
            al.Add(56);
            al.Add(12);
            al.Add(23);
            al.Add(9);
            
            Console.WriteLine("Capacity: {0} ", al.Capacity);
            Console.WriteLine("Count: {0}", al.Count);
                      
            Console.Write("Content: ");
            foreach (int i in al)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.Write("Sorted Content: ");
            al.Sort();
            foreach (int i in al)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.ReadKey();


//当上面的代码被编译和执行时,它会产生下列结果
Adding some numbers:
Capacity: 8
Count: 7
Content: 45 78 33 56 12 23 9
Content: 9 12 23 33 45 56 78    

Hashtable 类

Hashtable 类代表了一系列基于键的哈希代码组织起来的键/值对。它使用来访问集合中的元素。

当使用访问元素时,则使用哈希表,而且可以识别一个有用的键值。哈希表中的每一项都有一个键/值对。键用于访问集合中的项目。

List

所属命名空间:System.Collections.Generic    

List<T>类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T> 泛型接口。

泛型的好处: 它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行,向下强制类型转换,所以性能得到提高。

Directory

在C#中,Dictionary提供快速的基于兼职的元素查找。它的结构是这样的:Dictionary<[key], [value]> ,当有很多元素的时候可以使用它。

它包含在System.Collections.Generic名空间中。在使用前,你必须声明它的键类型和值类型。

任何键都必须是唯一的,键不能为空引用null,若值为引用类型,则可以为空值。

创建及初始化:Dictionary<int,string> myDictionary=new Dictionary<int,string>();

原文地址:https://www.cnblogs.com/baixiao/p/7709996.html