第四章 数组


前言

提示:本文大概内容:

  • 了解什么是数组?
  • 掌握数组声明、初始化、使用

提示:以下是本篇文章正文内容

一、数组是什么?

示例:数组就是用于存储数据的长度固定的容器,保证多个数据的数据类型要一致。

二、一维数组声明和使用

1.声明

代码如下(示例):

/*
类型名[] 数组名;
*/

int[] nums; //推荐使用
int nums[]; //不推荐使用

2.初始化

代码如下(示例):

//1、动态初始化
int[] nums = new int[5];  //数字代表数组长度,需要单独赋值
nums[0] = 5;

//2、静态初始化
int[] nums = {1,2,3,4,5}; //静态初始化,每个元素都有初始值

/*报错
int[] nums;
nums = {1,2,3,4,5};
*/

⚠️小结:

  • 数组必须在初始化的时候,给出数组长度,且长度不再改变。(数组定长)
  • 数组动态初始化,数组存储默认值。
  • 静态初始化赋值,必须在一行完成。

3.使用数组

代码如下(示例):

System.out.println(nums[0]); //访问nums数组第一个元素

⚠️小结

  • 访问数组下标,要防止越界(数组下标从0开始);且下标只能是int类型。

三、二维数组声明和使用

数据元素为一维数组的数组就是二维数组。

3.1 二维数组声明

示例代码:

int[][] nums = new int[3][4];//数组长度为3,每个元素有4个一维数组
int[][] nums = new int[3][]; //数组长度为3,每个元素数组长度不确定


int[][] arr= {{1,2,3}, {4,5}, {5,6,7,8}}; //静态

3.2二维数组使用

示例代码:

	int[][] arr = new int[3][];
	System.out.println(arr);//[[I@1241223
	
	System.out.println(arr[0]);//null
	System.out.println(arr[1]);//null
	System.out.println(arr[2]);//null
	
	int[] arr_1 = {1,2,3};
	arr[0] = arr_1;
	
	int[] arr_2 = {4,5};
	arr[1] = arr_2;
	
	int[] arr_3 = {6,7,8,9};
	arr[2] = arr_3;
	
	System.out.println(arr[0]);//[I@4e2589f
	System.out.println(arr[1]);//[I@70de74e
	System.out.println(arr[2]);//[I@5c64675
	
	System.out.println(arr[0][0]);//1
	System.out.println(arr[0][1]);//2
	System.out.println(arr[0][2]);//3
	
	System.out.println(arr[1][0]);//4
	System.out.println(arr[1][1]);//5
	
	System.out.println(arr[2][0]);//6
	System.out.println(arr[2][1]);//7
	System.out.println(arr[2][2]);//8
	System.out.println(arr[2][3]);//9

3.3 二维数组遍历

示例代码:双层for循环

	int[][] arr = {{1,2,3}, {4,5}, {5,6,7,8}};
	
	for(int i = 0; i < arr.length; i++) {
		for(int j = 0; j < arr[i].length; j++) {
			System.out.print(arr[i][j] + " ");
		}
		System.out.println();
	}

总结

1、数组动态初始化、静态初始化区别
动态初始化:保存将来会出现的值,预留空间。
静态初始化:没有空余空间存储新值。

2、数组存储
数组首地址存储在栈中,栈中存储堆中分配的首地址。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值