用C#描述数据结构2:Array

3/8/2017来源:ASP.NET技巧人气:2799

作者:vuefine 文献: - Data Structures and Algorithms Using C# | Michael Mcmillan 平台:.NET 2.0+


  Array是.NET提供的最基础的数据集合,通过索引直接访问集合元素。提供一维或多维数据存储,并支持诸如,查询,搜索,排序,复制等操作。 提供的主要接口,根据语义划分,主要包括:

这里写图片描述

  一维数组声明,创建,初始化: 1)直接在初始化器内进行:

int[] mp = new int[6] { -50, -30, -10, 10, 30, 50 };

2)分别赋值:

mp[0] = -50; mp[1] = -30; mp[2] = -10; mp[3] = 10; mp[4] = 30; mp[5] = 50;

如下图所示,一维图的编号分别为0,1,2,3,4,5

这里写图片描述

多维(例如二维)数组声明,创建,初始化:(如上图所示,二维的编号分别为0,1,2,3,4,5)

int[,] point = new int[2, 6] { { -50, -30, -10, 10, 30, 50 },//第0维 { 50, 30, 10, 10, 30, 50 }//第1维 };

  分别初始化:

//点0 point[0, 0] = -50; point[1, 0] = 50; //点1 point[0, 1] = -30; point[1, 1] = 30; //点2 point[0, 2] = -10; point[1, 2] = 10; //点3 point[0, 3] = 10; point[1, 3] = 10; //点4 point[0, 4] = 30; point[1, 4] = 30; //点5 point[0, 5] = 50; point[1, 5] = 50;

  分别比较一维和多维,接口方法的语义区别:

//获取某维的元素个数 int mpLen0 = mp.GetLength(0);//6 int pointLen0 = point.GetLength(0);//2 int pointLen1 = point.GetLength(1);//6 //获取某个维度的下标最大值 int mpUpperBound = mp.GetUpperBound(0); //5 int pointUpperBound0 = point.GetUpperBound(0);//1 int pointUpperBound1 = point.GetUpperBound(1);//5 //获取某个维度的下标最小值 int mpLowBound = mp.GetLowerBound(0);//0 int pointLowBound0 = point.GetLowerBound(0);//0 int pointLowBound1 = point.GetLowerBound(1);//0 //获取所有维数的元素总数 int mpLen = mp.Length;//6 int pointLen = point.Length;//12 //获取维数 int mPRank = mp.Rank;//1 int pointRank = point.Rank;//2

  总结   1 Array在编译时必须确定元素每一维度的元素个数,这是它最大的缺陷,对于运行时才能确定某个维度的元素个数的情况,这个数据结构是不能满足条件的!   2 Array创建时的类型为强类型,必须指定。      下载Array思维导图地址: http://download.csdn.net/detail/daigualu/9772336   测试源码下载地址:   http://download.csdn.net/my