一维/二维数组的几种初始化方法

本文详细介绍了Java中一维数组和二维数组的三种初始化方法:静态初始化、动态初始化及混合初始化。一维数组初始化包括直接赋值和使用new关键字。二维数组初始化则涉及规则与不规则表格的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一维数组的初始化方法

方式一:静态初始化

 

数据类型[] 数组名 = {元素1,元素2,元素3...};//必须在一个语句中完成,不能分开两个语句写
  • 举例:

定义存储1,2,3,4,5整数的数组容器

int[] arr = {1,2,3,4,5};//正确

int[] arr;
arr = {1,2,3,4,5};//错误

方式二:静态初始化

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
或
数据类型[] 数组名;
数组名 = new 数据类型[]{元素1,元素2,元素3...};
  • 举例:

定义存储1,2,3,4,5整数的数组容器。

int[] arr = new int[]{1,2,3,4,5};//正确

int[] arr;
arr = new int[]{1,2,3,4,5};//正确

int[] arr = new int[5]{1,2,3,4,5};//错误的,后面有{}指定元素列表,就不需要在[长度]指定长度。

方式三:动态初始化

 数组存储的元素的数据类型[] 数组名字 = new 数组存储的元素的数据类型[长度];
  或
 数组存储的数据类型[] 数组名字;
 数组名字 = new 数组存储的数据类型[长度];
  • 举例:

定义可以存储5个整数的数组容器,代码如下:

int[] arr = new int[5];

int[] arr;
arr = new int[5];

数组定义格式详解:

  • 数组存储的元素的数据类型: 创建的数组容器可以存储什么数据类型的数据。

  • 元素的类型可以是任意的Java的数据类型。例如:int, String, Student等

  • [] : 表示数组。

  • 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。

  • new:关键字,创建数组使用的关键字。因为数组本身是引用数据类型,所以要用new创建数组对象。

  • [长度]:数组的长度,表示数组容器中可以存储多少个元素。

  • 注意:数组有定长特性,长度一旦指定,不可更改。

    • 和水杯道理相同,买了一个2升的水杯,总容量就是2升,不能多也不能少

       

二维数组的初始化方法

语法格式:

//推荐
元素的数据类型[][] 二维数组的名称;

//不推荐
元素的数据类型  二维数组名[][];
//不推荐
元素的数据类型[]  二维数组名[];

面试:

int[] x, y[];//x是一维数组,y是二维数组

1、静态初始化

元素的数据类型[][] 二维数组名 = new 元素的数据类型[][]{
			{元素1,元素2,元素3 。。。}, 
			{第二行的值列表},
			...
			{第n行的值列表}
		};

元素的数据类型[][] 二维数组名;
二维数组名 = new 元素的数据类型[][]{
			{元素1,元素2,元素3 。。。}, 
			{第二行的值列表},
			...
			{第n行的值列表}
		};
		
//以下格式要求声明与静态初始化必须一起完成
元素的数据类型[][] 二维数组的名称 = {
			{元素1,元素2,元素3 。。。}, 
			{第二行的值列表},
			...
			{第n行的值列表}
		};

如果是静态初始化,右边new 数据类型[][]中不能写数字,因为行数和列数,由{}的元素个数决定

举例:

int[][] arr;
	arr = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
	arr = new int[3][3]{{1,2,3},{4,5,6},{7,8,9}};//错误,静态初始化右边new 数据类型[]中不能写数字

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

	int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};//声明与初始化必须在一句完成

2、动态初始化(规则二维表:每一行的列数是相同的)

//(1)确定行数和列数
元素的数据类型[][] 二维数组名 = new 元素的数据类型[m][n];
	m:表示这个二维数组有多少个一维数组。或者说一共二维表有几行
	n:表示每一个一维数组的元素有多少个。或者说每一行共有一个单元格

//此时创建完数组,行数、列数确定,而且元素也都有默认值

//(2)再为元素赋新值
二维数组名[行下标][列下标] = 值;

举例:

int[][] arr = new int[3][2];
或
int[] arr = new int[3][];
arr[0] = {1, 2};

3、动态初始化(不规则:每一行的列数可能不一样)

//(1)先确定总行数
元素的数据类型[][] 二维数组名 = new 元素的数据类型[总行数][];

//此时只是确定了总行数,每一行里面现在是null

//(2)再确定每一行的列数,创建每一行的一维数组
二维数组名[行下标] = new 元素的数据类型[该行的总列数];

//此时已经new完的行的元素就有默认值了,没有new的行还是null

//(3)再为元素赋值
二维数组名[行下标][列下标] = 值;

举例:

int[][] arrs = new int[4][5];
        for (int i = 0; i < arrs.length; i++) {
            for (int j = 0; j < arrs[i].length; j++) {
                arrs[i][j] = 1;
            }
        }
//完成了对二维数组每个元素的赋值,全都赋值为了1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值