Java数组和字符串:多维数组的创建和使用

在学习了一维数组之后,便开始学习多维数组。
【动因】
目前,你已经使用过一维数组来对线性的元素集合进行建模。你可以使用二维数组来表示矩阵或表格。例如:使用二维数组可以存储下面这个描述城市之间距离的表格。
在这里插入图片描述

【多维数组】

二维数组的声明和创建

(1)二维数组的声明

数组元素类型 数组名[][];

数组元素类型[][] 数组名;

数组元素类型[] 数组名[];

(2) 二维数组的创建
① 直接分配(平衡二维数组——矩阵)

  数组名 = new 数组元素类型[行数][列数];

② 从最高维开始,分每一维分配不等长的空间
③ 直接复制创建

二维数组的初始化

(1) 默认初始化
(2) 单个元素循环初始化
(3) 枚举初始化

元素类型[] 数组名字={
    
    
		{
    
    value0,value1,… …,valuen},
		{
    
    value0,value1,… …,valuem},
		… …
		{
    
    value0,value1,… …,valuex}
};
	value:数组中各元素的值。

二维数组元素的引用

引用二维数组元素的方式为:

数组名[下标1][下标2]

注意:
下标不能是long类型的数。如果非得用long类型的数定义数组的下标,则须强制转换。

【使用简捷符号声明、创建和初始化】

扫描二维码关注公众号,回复: 12160911 查看本文章

你也可以使用数组初始化语法来声明、创建和初始化一个二维数组。例如:
在这里插入图片描述
【二维数组的长度】

int[][] x = new int[3][4];

在这里插入图片描述
在这里插入图片描述

【锯齿数组】
二维数组中每一行本身就是一个数组。因此,各行的长度可以不同。这样的数组被称为锯齿数组。例如:

int[][] matrix = {
    
    
{
    
    1,2,3,4,5},
{
    
    2,3,4,5},
{
    
    3,4,5},
{
    
    4,5},
{
    
    5}
};

【多维数组】

有时,你会需要表示n维数组。在Java中,你可以创建n维数组,其中n是任意整数。

对二维数组的声明以及二维数组的创建方法进行推广,用于声明n维数组变量和创建n维数组,这里的n >= 3。例如:下面的语法声明一个三维数组变量scores,创建一个数组并将它的引用赋值给scores。

double[][][] scores = new double[10][5][2];

【二维数组常用的操作】

使用输入值初始化数组:

Scanner sc = new Scanner(System.in);
		System.out.println("Enter"+matrix.length+"rows and"+matrix[0].length+"columns:");
		for (int row = 0; row < matrix.length; row++) {
    
    
			for (int column = 0; column < matrix[row].length; column++) {
    
    
				matrix[row][column] = sc.nextInt();
			}
		}

使用随机数初始化数组

for (int row = 0; row < matrix.length; row++) {
    
    
			for (int column = 0; column < matrix[row].length; column++) {
    
    
				matrix[row][column] = (int)(Math.random()*100);
			}
		}

打印数组

for (int row = 0; row < matrix.length; row++) {
    
    
			for (int column = 0; column < matrix[row].length; column++) {
    
    
				System.out.println(matrix[row][column]+"");
			}
			System.out.println();
		}

求所有元素的和

int total = 0;
		for (int row = 0; row < matrix.length; row++) {
    
    
			for (int column = 0; column < matrix[row].length; column++) {
    
    
				total +=matrix[row][column];
			}
		}

猜你喜欢

转载自blog.csdn.net/m0_46700215/article/details/106458955
今日推荐