数组、二维数组、多维数组、交错数组

一、什么是数组(一维数组)?

  • 所谓数组,是有序的元素序列。
  • 数组是用于储存多个相同类型数据的集合。
  • 数组是一块连续的内存空间。
  • 把具有相同类型的若干元素按无序的形式组织起来,这些无序排列的同类型元素的集合被称为数组。
  • 一般使用的普通数组被称为一维数组。

二、数组的基本结构

1.基本申明形式

//基本结构:变量类型[]变量名 = new 变量类型[数组长度]{元素,元素,元素};

int[]Arr = new int[5]; //只设定初始数组长度的申明形式。

int[]Arr = new int[]{1,2,3,4,5,6}; //只设定元素数量的申明形式,数组长度会自动匹配。

int[]Arr = new int[5] {1,2,3,4,5};//设定了数组长度和元素数量的申明形式。

三、数组的相关特性

  • 数组中的元素是无序排列的,但数组具有下标的概念,通过查找下标的方式来查找到具体的下标元素。
  • 数组下标是有序排列的,并且无法修改下标的位置和排列顺序。
  • 数组标识符是一个引用,用来指向堆中创建的一个对象,这个对象保存了指向其他对象的引用。
  • 数组中的元素类型必须为同一类型。
  • 数组中的Length只能表示数组的最大长度,而不能表示实际保存的元素数量。
  • 数组必须对元素赋值才可使用。

四、二维数组

什么是二维数组?

  • 二维数组本质上是以数组作为数组元素的数组。即“数组中的数组”。
  • 数组是普通一维数组的扩展,具有和一维数组一样的特性。

二维数组的基本结构:

//基本结构:变量类型[,]变量名 = new 变量类型[行数 , 列数]{{列表1},{列表2}};
 int[,] Arr = new int[2, 3];//只设定初始数组行数和列数的申明形式。
int[,] Arr = new int[2,3] { {1,2,3 },{4,5,6 } };//设定了数组行数和列数的元素数量的申明形式。
int[,] Arr = new int[,] { {1,2,3 },{4,5,6 } }; //只设定行数和列数的申明形式,数组列数和行数会自动匹配。

五、多维数组

什么是多维数组?

  • 多维数组指的是,在三维及以上维度数组的称呼。
  • 多维数组具有至少3中概念性,及行、列、层等概念(概念仅仅只是一种叫法)。
  • 多维数组具有和一维数组一样的特性。
  • 多维数组的维度可以无限增加。

多维数组的基本结构:

//在二维数组的基础上进行多次嵌套就可实现多维数组。
int[,,] Arr = new int[,,] { { { 0},{0 } },{ {0 },{0 } },{ {0 },{0 } } };//多维数组样例1(三维)
int[,,,] Arr = new int[,,,] { { { { 1,13},{ 2,14},{3,15 } } },{ { {4,16 },{5,17 },{ 6,18} } },{ { {7,19 },{8,20 },{9,21 } } },{ { { 10,22},{ 11,23},{ 12,24} } } };//多维数组样例2(四维)

六、交错/锯齿数组

什么是交错/锯齿数组?

  • 交错数组和二维数组都被称为是“数组中数组”。
  • 在多维和二维数组里,它们可以设定维度并且放置元素。而交错数组可以将一维或多维数组当成元素来放置。
  • 即,交错数组中的每一个元素是一个数组。

交错/锯齿数组的基本结构:

 //int[交错数组的维度][放置数组的维度] Arr
 int[][] Arr = new int[1][] { new int[] { 1, 2, 3 } }; //一维的交错数组中放置一维数组。
 int[][,] arr = new int[][,] { new int[,] { { 2, 2 }, { 1, 2 } }, new int[,] { { 1, 2, 3 }, { 1, 3, 4 } } };//一维交错放置二维数组。
 int[,][,] arr = new int[,][,]{{new int[,]{{1,2},{1,2}}, new int[,]{{1,2,3},{1,3,4}}},{new int[,]{{2,2},{1,2}}, new int[,]{{1,2,3},{1,3,4}}}};//二维交错数组放置二维数组

七、数组的相关函数

  • Rank,获取数组的维数。
  • LongLength,获取数组中所有元素的总和,返回long类型。
  • Length,获取数组中所有元素的总和,返回int类型。
  • BinarySearch,二分法查找元素,查询到后返回下标,查询不到返回负数。
  • Clear,删除指定范围内的全部元素。
  • ConstrainedCopy,将数组中的指定范围内的元素复制到另一个数组的指定位置上。
  • Copy,将数组中的指定元素复制到另一个数组内。
  • IndexOf,查找指定元素,返回元素下标。
  • LastIndexOf,从后查找元素,返回下标(当数组中具有多个相同的元素,返回靠后的元素下标)。
  • Resize,更改数组长度。
  • Reverse,将指定范围内的元素反转,交换位置。
  • Sort,为数组进行自动排序。
  • CopyTo,将某个数组的全部元素复制到另一个数组中的指定位置。
  • GetValue,获取数组中指定下标的元素。
  • SetValue,更改数组指定下标的元素。
  • Contains,判断数组是否包含指定的元素。
  • Sum,获取数组中全部元素相加的和。
  • Max,获取数组中拥有最大值的元素。
  • Min,获取数组中拥有最小值的元素。
  • Average,获取数组全部元素的平均值。
  • Count,获取数组的长度(只有一维数组可用)。

注:此记录仅为本人的理解,若有错误欢迎大家指正。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值