复杂数据类型(二)
一.二维数组
基本概念
二维数组是使用两个下标(索引)来确定元素的数组,两个下标可以理解成行标和列标。
eg: 1 2 3
4 5 6
可以用二维数组int[2,3]表示,好比两行三列的数据集合。
在内存里面依据行优先存储原则,一行行横向存放。
二维数组的申明
变量类型[,]二维数组变量名;
变量类型[,]二维数组变量名 =new 变量类型[行,列];
1
| int [,] arr2=new int[3,3];
|
变量类型[,]二维数组变量名 =new 变量类型[行,列]
1
| int [,] arr3=new int[3,3]{{1,2,3},{1,2,3}{1,2,3}};
|
变量类型[,]二维数组变量名 =new 变量类型[,]
1
| int [,] arr4=new int[,]{{1,2,3},{1,2,3}{1,2,3}};
|
变量类型[,]二维数组变量名 =;
1
| int [,] arr5={{1,2,3},{1,2,3}{1,2,3}};
|
二维数组的使用
二维数组的长度
我们要获取行和列分别是多长.
1 2 3 4 5
| int[,] array =new int[,]{{1,2,3},{4,5,6}} Console.WriteLine(array.GetLength(0));
Console.WriteLine(array.GetLength(1));
|
获取二维数组中的元素
依据下标进行索引.
1
| Console.WriteLine(array[0,1]);
|
修改二维数组中的元素
1 2
| array[0,0]=99; Console.WriteLine(array[0,0]);
|
遍历二维数组
嵌套循环(不想写啦啦啦啦啦啦)
增加数组的元素
和一维函数一样,还是通过”搬家”的思想,数组声明初始化后,就不能在原有的基础上进行添加或删除了.
1 2 3 4 5 6 7 8 9
| int[,]array=new int[2,3]; int[,]array2=new int[3,3]; for(int i=0;i<array.GetLength(0);i++){ for(int j=0;j<array.GetLength(1);j++){ array2[i,j]=array[i,j]; } } array=array2;
|
删除数组的元素
和增加异曲同工,也不想写啦!!!!!!
查找数组中的元素
进行遍历查找,必要可以使用算法.
二.交错数组
(咱们了解一下即可,实际应用较少)
基本概念
交错数组是数组的数组,每个维度的数量可以不同。
注意:二维数组的每行的列数相同,交错数组每行的列数可能不同。
数组的申明
变量类型[ ]//[ ] 交错数组名;
之后的申明和一维二维差不多,直接写了,不起标题了。
1 2 3 4 5 6 7 8 9 10 11 12 13
| int[][] arr2=new int[3][];
int[][] arr3=new int[3][]{new int[]{1,2,3}, new int[]{1,2}, new int[]{1}; }
int[][] arr4=new int[][]{new int[]{1,2,3}, new int[]{1,2}, new int[]{1}}; int[][] arr5={new int[]{1,2,3}, new int[]{1,2}, new int[]{1}};
|
数组的使用
数组的长度
1 2 3 4 5 6
| int [][] array={new int[]{1,2,3}, new int[]{4,5}}; Console.WriteLine(array.GetLength(0));
Console.WriteLine(array[0].Length);
|
获取交错数组中的元素
直接获取,不解释。
修改交错数组中的元素
同上,直接赋值。
遍历交错数组
1 2 3 4 5 6
| for(int i=0;i<array.GerLength(0);i++){ for(int j=0;j<array[i].Length;j++){ Console.WriteLine(array[i][j]); } }
|