day4-数组

数组
定义:数组是一个存储相同类型元素的固定大小的顺序集合
数据是用来存储数据的集合,通常认为个同一类型变量的集 合。 简单来说,数组是一个容器,存储相同类型的数据,并且容量是固定的;
所有的数组都是由连续的内存位置组成的。最低的地址对应第一个元素,最高的地址对应最后一个元素。

声明数组
datatype[] arrayName;
注:datatype定义存储的数据类型,[]表示数组的维数,arrayName 数组名; 例如: int[] arr;

初始化数组
四种方式
  • 直接定义一个已知元素值的数组
    • 类型[] arr={元素1,元素2,元素3,...};这种格式只有在创建数组时才可 以用
    • int[] arr3 = {1, 3, 5, 6, 7, 8, 9, 0, 12};
  • 定义一个已知长度的数组;
    • 类型[] arr=new 类型[长度];
    • bool[] arr = new bool[3];
  • 定义一个已知长度已知数据的数组
    • 类型[] arr=new 类型[长度]{元素1,元素2,元素3,...};
    • char[] arr2 = new char[10] {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
  • 虽然没有定义长度,但通过后面的元素也可以确定数组的长度
    • 类型[] arr=new 类型[]{元素1,元素2,元素3,...};
    • int[]arr3=new int[] {1,2,3}
: 1.元素就是数组中存储的数据;
2.长度就是数组中可存储的元素个数

访问数组中的元素
arrayname[下标]
:下标是数组中的索引,编号,第一个元素的下标是0,第二个是 1,依次类推,最后一个长度-1;
例如: int[] arr={1,3,5}; /
Console.WriteLine(arr[1]); /访问第二个元素 , > >结果:3
修改指定下标的值
通过赋值符号=,可以给数组指定的下标重新赋值
例如:int[] arr={1,3,5,7};
arr[0]=2;
Console.WriteLine(arr[0]);
>>结果:2;//数组第一个下标的元素发生改变了
访问数组的长度
arrayname.Length;
例如:
int[] arr={1,3,5,4}; //访问第二个元素
Console.WriteLine(arr.Length); >>结果:4

二维数组[,] 和交错数组[ ][ ]:
 
交错数组是元素为数组的数组。交错数组元素的维度和大小可以不同。交错数组有时称为“数组的数组”。交错数组和Java的数组非常类似。
交错数组是数组的数组,因此其元素是引用类型并初始化为 null.
二维数组维度和大小是固定的
多维数组
矩形数组,固定行列
例如:存储3维数组数据,每组数据有4个
{1,1,1,1}
{1,1,1,1}
{1,1,1,1}
{1,1,1,1}
格式 数据类型[,]arr=new 数据类型[行数,列数];
int[,]arr=new int [3,4];
例如:int[,]=new int [3,4]{{1,1,61,1}
{1,13,16,18}
{1,61,4,1}};
访问元素下标:
arr[行下标,列下标]
例如:int[,]=new int [3,4]{{1,1,61,1}
{1,13,16,18}
{1,61,4,1}};
arr[1,2];//->16
arr[2,3];//->1
访问数组的长度:
1.行数: 数组名.GetLength(0);    
2.列数 : 数组名.GetLength(1);
3. 总的元素个数数组名.Length
交错数组:
交错数组是数组中的 数组中的数组,一个数组中可以存储多个 不同长度的数组;
可以声明一个交错数组,如: int[][]score;注意: 声明数组不占内存
int[][]score=new int [5][];//5表示数组中嵌套的数组的个数
for(int i=;i<score.Length;i++){
score[i]=new int[4];//这里的4表示。嵌套的每个数组中的元素的总个数
}
格式:数组类型[][]数组名=new 数据类型[数组的个数(必须要填)][];
初始化一个数组如下:int[][] scores = new int[2][]{new int[]{92,93,94},new int[] {85,66,87,88}};
遍历交错数组:
for (int i = 0; i < score.Length; i++)//循环外围的长度
{
for (int j = 0; j < score[i].Length; j++)//循环内围的长度,即可看为循环遍历嵌套数组中的元素
{
Console.Write(score[i][j]);
}
}
补充知识点:
数组排序方法:冒泡排序
方法1: 大数字往后冒
int[] arr5 = {13, 4, 32, 43, 5, 76};
for (int i = 0; i < arr5.Length-1; i++)//循环的次数。
{
for (int j = 0; j < arr5.Length-1-i; j++)//这里的(arr5.Length-i-1)是指每次比较的次数,经过i轮循环,每次比较就会少i次
{
if (arr5[j]>arr5[j+1])//判断索引小的和索引大一的两数的大小
{
int temp = arr5[j];//交换两者
arr5[j] = arr5[j + 1];
arr5[j+1] = temp;//
}
}
}
foreach (var i in arr5)//重新遍历数组
{
Console.Write(i+" ");
}
方法2: 小数字往前冒
int[] arr6 = { 13, 4, 32, 43, 5, 76 };
for (int i = 0; i < arr6.Length-1; i++)
{
for (int j = i+1; j < arr6.Length; j++)
{
if (arr6[i] > arr6[j])
{
int temp = arr6[j];//交换两者
arr6[j] = arr6[i];
arr6[i] = temp;//
}
}
}
foreach (var i in arr6)
{
Console.Write(i+" ");
}














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值