第5章 数组和集合

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一维数组的使用
需要存储多个值时,可以使用一维数组,而且可以通过使用foreach语句或 数组的下标将数组中的元素值读出来。
数组索引 数组元素的值
二维数组的声明
二维数组即数组的维数为2,二维数组类似于矩形网格和非矩形网格。 1.声明 type[,] arrayName; type:数组存储数据的数据类型。 arrayName:数组名称。 例如,声明一个两行两列的二维数组,代码如下。 int[,] arr = new int[2,2]; 2.初始化 二维数组的初始化有两种形式,可以通过new运算符创建数组并将数组元素初始化为它 们的默认值。 例如,声明一个两行两列的二维数组,同时使用new运算符对其进行初始化,代码如下。 int[,] arr=new int[2,2]{{1,2},{3,4}}; 也可以在初始化数组时,不指定行数和列数,而是使用编译器根据初始值的数量来自动 计算数组的行数和列数。 例如,声明一个二维数组,声明时不指定该数组的行数和列数,然后使用new运算符对 其进行初始化,代码如下。 int[,] arr=new int[,]{{1,2},{3,4}};
【3-1】删除数组元素后改变其长度
本实验演示如何在删除数组元素后改变其长度,运行本实例,首先 单击“随机生成数组”按钮,生成一个数组;然后分别输入开始删除的 索引和要删除的元素个数;最后,单击“确定”按钮,从生成的数组的 指定索引处删除指定的元素个数,从而生成一个新的数组。
【3-2】向班级集合中添加学生信息
属 性 说 明 Capacity Count IsFixedSize IsReadOnly IsSynchronized Item 获取或设置ArrayList可包含的元素数 获取ArrayList中实际包含的元素数 获取一个值,该值指示ArrayList是否具有固定大小 获取一个值,该值指示ArrayList是否为只读 获取一个值,该值指示是否同步对ArrayList的访问 获取或设置指定索引处的元素
集合在程序开发中经常用到,比如可以将学生信息、商品信息等 存储到集合中,以便随时更新。本实例将使用集合存储学生信息。
一维数组的声明(2)
可以在声明数组时将其初始化,并且初始化的值为用户自定义的值。 例如,声明一个string类型的一维数组character,并且初始化其中的元素,代码如下。 string []character=new string[3]{color,size,shape}; 可以声明一个数组变量时不对其初始化,但在对数组初始化时必须使用new运算符。 例如,声明一个int类型的一维数组arr,然后使用new运算符对其进行初始化,代码如下。 int[] arr; arr = new int[] { 1, 3, 4, 5 }; 实际上,初始化数组时可以省略new运算符和数组的长度。编译器将根据初始值的数量 来计算数组长度,并创建数组。 例如,在声明一维数组arr时,不使用new运算符,直接对该数组进行初始化,代码如下。 string[] arr={1,3,4,5};
ArrayList元素的删除
1.Clear方法 该方法用来从ArrayList中移除所有元素,其语法格式如下。 public virtual void Clear () 2.Remove方法 该方法用来从ArrayList中移除特定对象的第一个匹配项,其语法格式如下。 public virtual void Remove (Object obj) 其中obj表示要从ArrayList移除的Object,该值可以为空引用。 3.RemoveAt方法 该方法用来移除ArrayList的指定索引处的元素,其语法格式如下。 public virtual void RemoveAt (int index) index:要移除的元素的从零开始的索引。 4.RemoveRange方法 该方法用来从ArrayList中移除一定范围的元素,其语法格式如下。 public virtual void RemoveRange (int index,int count) index:要移除的元素的范围从零开始的起始索引。 count:要移除的元素数。
元素类型。
数组的维数 每个维数的上下限。 数组的元素表示某一种确定的类型,如整数或字符串等。数组是一个存储一系列元素位 置的对象。数组中存储位置的数量由数组的秩和边界来确定。数组类型是从抽象基类型 Array派。数组可以分为一维数组、二维数组和多维数组等。
一维数组的声明(1)
一维数组即数组的维数为1。一维数组就是好比一个大型的零件生产公司,而公司中的 各个车间(如车间1、车间2、车间3等,这些名称相当于数组中的索引号)就相当于一维数 组中的各元素,这些车间即可以单独使用,也可以一起使用。 1.声明 type[] arrayName; •type:数组存储数据的数据类型。 •arrayName:数组名称。 例如,声明一个枚举类型的数组arr,代码如下: enum[] arr; 说明:声明数组时可以指定数组长度也可以不指定,而是在使用数组元素前动态指定,但 是数组的长度一经指定就不能更改。 2.初始化 数组的初始化有很多形式,可以通过new运算符创建数组并将数组元素初始化为它们的 默认值。 例如,声明一个int类型的一维数组arr,该数组中包含8个元素,同时对该数组进行初始 化,代码如下。 int[] arr =new int[8]; //arr数组中的每个元素都初始化为0 说明:int类型的数组元素初始化时的默认值为0,bool类型的数组元素初始化时的默认值为 false,引用类型的数组元素初始化时的默认值为null。
例5.5
对数组进行排序
排序是编程中最常用的算法之一,排序的方法有很多种,可以用遍历的方法对数组 进行排序,也可以用Array类的Sort方法和Reverse方法对数组进行排序。 C#中提供了用于对数组进行排序的方法Array.Sort和Array.Reverse,其中,Array.Sort方法 用于对一维Array数组中的元素进行排序,Array.Reverse方法用于反转一维Array数组或 部分Array数组中元素的顺序。 例如,下面使用Array.Sort方法对数组中的元素进行从小到大的排序。代码如下: int[] arr = new int[] { 3, 9, 27, 6, 18, 12, 21, 15 }; Array.Sort(arr); //对数组元素排序 例如,定义一个数组arr,然后使用Array类对其进行排序。代码如下: int[] arr = new int[] { 3, 9, 27, 6, 18, 12, 21, 15 }; Array. Reverse(arr); //对数组元素反向排序
ArrayList类
1、ArrayList类
2、ArrayList元素的添加 3、ArrayList元素的删除 4、ArrayList的遍历
ArraHale Waihona Puke BaiduList类
ArrayList类位于System.Collections命名空间下,它可以动态地添加和删除元素。可以将ArrayList类看 做扩充了功能的数组,但它并不等同于数组。 与数组相比,ArrayList类为开发人员提供了以下功能: •数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充。 •ArrayList提供添加、删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素的 值。 •ArrayList提供将只读和固定大小包装返回到集合的方法,而数组不提供。 •ArrayList只能是一维形式,而数组可以是多维的。 (1)默认的构造器 ArrayList List = new ArrayList(); for (int i = 0; i < 10; i++) //给ArrayList对象添加10个int元素 List.Add(i); (2)用一个ICollection对象来构造,并将该集合的元素添加到ArrayList中 ArrayList List = new ArrayList(arryName); (3)用指定的大小初始化内部的数组 ArrayList List = new ArrayList(n);
添加/删除数组元素
添加/删除数组元素就是在数组中的指定位置对数组元素进行添加 和删除,添加数组元素一般是通过使用ArrayList类实现,该类将在后 面的小节中进行详细讲解。可以利用数组的索引号对数组元素进行 删除操作,但这种方法不能够真正地实现对数组元素的删除,一般 不推荐使用。
int[] arr = new int[] { 1, 3, 5, 7, 9 }; //删除数组中的第二个元素 int n=1; for (int i = n; i < arr.Length - 1 ; i++) arr[i] = arr[i + 1];
第5章 数组和集合
数组概述
数组是包含若干相同类型的变量,这些变量都可以通过索引进行访问。数组中的变量称 为数组的元素,数组能够容纳元素的数量称为数组的长度。数组中的每个元素都具有唯一
的索引与其相对应,数组的索引从零开始。
数组是通过指定数组的元素类型、数组的秩(维数)及数组每个维度的上限和下限来定 义的,即一个数组的定义需要包含以下几个要素。
ArrayList的遍历
ArrayList集合的遍历与数组类似,都可以使用foreach语句,下面通 过一个实例说明如何遍历ArrayList集合中的元素。
ArrayList country = new ArrayList(); //创建一个ArrayList类 country.Add("古代中国");//添加元素 country.Add("古代埃及"); //添加元素 country.Add("古代印度"); //添加元素 country.Add("古代巴比伦"); //添加元素 Console.WriteLine("四大文明古国有:"); foreach (string s in country) //遍历输出集合中的元素 Console.WriteLine(s); Console.ReadLine();
二维数组的使用
需要存储表格的数据时,可以使用二维数组。如图所示举例说明了 4行3列 的二维数组的存储结构
数组索引
动态二维数组的声明及使用
数组的基本操作
1、数组的遍历
2、添加/删除数组元素 3、对数组进行排序
数组的遍历
使用foreach语句可以实现数组的遍历功能,开发人员可以用foreach语句访 问数组中的每个元素而不需要确切地知道每个元素的索引号。 例如:
SyncRoot
获取可用于同步ArrayList访问的对象
ArrayList元素的添加
1.Add方法 该方法用来将对象添加到ArrayList集合的结尾处,其语法格式如下。
public virtual int Add (Object value)
其中: value 表示要添加到 ArrayList 的末尾处的 Object ,该值可以为空引 用。返回值为ArrayList索引,已在此处添加了value。 ArrayList List = new ArrayList(arr); List.Add(100); 2.Insert方法 该方法用来将元素插入ArrayList集合的指定索引处,其语法格式如下。 public virtual void Insert (int index,Object value) 其中:index表示从零开始的索引,应在该位置插入value。Value表示要插 入的Object,该值可以为空引用。 List.Insert(8,88);
int[] arr = new int[10] { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; //采用foreach语句对arr数组进行遍历 foreach (int number in arr) Console.WriteLine(number); Console.ReadLine();
相关文档
最新文档