一维二维数组

数组

一维数组

  • 数组一旦被创建,那么它的大小就是固定的。使用一个数组引用和下标来访问数组中的元素
  • 数组是数据的集合,但是通常会把数组看作一个存储了具有相同类型的变量集合
  • 无需声明单个变量,只要声明一个数组变量number,并用number[0]等来表示单个变量

声明数组变量

  • 声明一个引用数组的变量,并指明数组的元素类型
//elementType可以是任意数据类型,数组中所有的元素都必须具有相同的数据类型
elementType[] arrayRefVar;
elementType arrayRefVar[];//可以,但不推荐

创建数组

不同于声明基本数据类型变量,声明一个数组变量时并不给数组分配任何内存空间;它只是创建了一个对数组的引用的存储位置。如果变量不包含对数组的引用,那么这个变量的值为null。除非数组已经创建,否则不会给变量分配任何元素。声明数组变量之后,可以使用new操作来创建数组

arrayRefVar = new elementType[arraysize];

可以将声明数组、创建数组、将数组引用赋值给变量三个步骤合并到一起

elementType[] arrayRefVar = new elementType[arraysize];

数组大小和默认值

当给数组分配空间时,必须指定数组能够存储的元素个数,从而决定数组的大小。创建后不能修改。数组名.length得到数组的大小;创建数组后,元素会得到默认值,基本数据类型的默认值是0,char类型的默认值是’\u000’,boolean的默认值是false

访问数组元素

数组可以通过下标访问,从0开始到n-1,

处理数组

通常会用到for循环,因为数组里是同类型数据,可以用for循反复环处理元素;数组大小已知,所以用for循环

for循环添加数组

double[] array = new double[10];
Scanner input = new Scanner(System.in);

for(int i = 0;i<array.length-1;i++){
    array[i] = input.nextDouble();
}

使用[0,100)随机数初始化数组

for(int i = 0;i<array.length;i++){
	array[i] = Math.Random()*100;
}

用for循环打印数组也与其类似;

foreach循环

Java支持一个简便的for循环,即foreach循环,不使用下标变量就可以顺序遍历整个数组。

for(double e: array){
	System.out.println(e);
}

可以读作"对array中每个元素e进行以下操作",变量e必须声明为array中元素相同的类型

当需要以其他顺序遍历数组或改变数组中的元素时,依旧要使用下标变量。

二维数组

二维数组通过行和列的下标来访问

创建方式:

int[][] matrix = new int[5][5];
int matrix[][]//可以但不推荐

创建一个5行5列的二维数组,并将其赋给matrix,第一个下标表示行,第二个表示列,元素都是int型。

例如将7赋值给第二行第三个元素时

matrix[2][3] = 7//数组初始化简写
int[][] array = {
    {1,2,3},
    {4,5,6},
    {7,8,9}
};//此时array[0][0]=1,array[0][1]=2以此类推

获取二维数组的长度

二维数组实际上是一个其中每个元素都是一个一维数组的数组。数组array的长度是数组中的元素个数,用数组matrix来表示:matrix[0]、matrix[1]等都是一维数组,每个数组里面有5个元素,也就是5个数组里面各有5个元素

不规则数组

例:

int[][] array = {
	{1,2,3,4},
	{5,6,7},
	{8,9},
	{10}
};

若不知道不规则数组的值但知道其长度:

int[][] array = new int[4][];
array[0] = new int[4];
array[1] = new int[3];
array[2] = new int[2];
array[3] = new int[1];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值