009数组(java基础)

目录

一、介绍数组

二、初始化的三种方式

1、定义一维数组的三种方式

(1)动态初始化

(2)静态初始化

(3)静态初始化的简化方式--直接赋值法

2、定义二维数组

三、数组元素的默认值

四、数组元素的访问

1、索引

2、访问格式

3、数组长度

4、遍历数组

(1)普通for循环

(2)增强for循环

(3)Arrays工具类toString(数组名)

(4)Arrays.deepToString(多维数组名)

五、数组长度不可变


一、介绍数组

一组相关变量的有序集合

数组存储的元素为相同的数据类型,可以是基本数据类型或引用数据类型

在java语言中,数组就是特殊的对象,属于引用数据类型

二、初始化的三种方式

数组使用之前需要先初始化,就是给数组分配内存空间,并给元素赋值

1、定义一维数组的三种方式

(1)动态初始化

通过给定数组长度来赋值

数据类型[] 数组名字 = new 数据类型[长度];

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

(2)静态初始化

通过给定数组元素,来确定数组长度,初始化数组

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

注:这个时候就不用指定数组长度了,如果加上了长度,会报错

(3)静态初始化的简化方式--直接赋值法

数据类型[] 数组名 = {元素1,元素2,元素3...};

//必须在一个语句中完成,不能分开两个语句写

2、定义二维数组

元素为一维数组的数组就称为二维数组,列相当于一维数组的长度

定义二维数组的几种声明形式:

  • 数组的动态初始化:数据类型 对象数组[][] = new 数据类型[行个数][列个数];
  • 数组的动态初始化:数据类型 对象数组[][] = new 数据类型[行个数][];
  • 数组的静态初始化:数据类型 对象数组[][] = new 数据类型[]{{值, 值,…}, {值, 值,…},…};
  • 数组的静态初始化:数据类型 对象数组[][] = {{值, 值,…}, {值, 值,…},…};

三、数组元素的默认值

四、数组元素的访问

1、索引

 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。

  • 索引范围:[0, 数组的长度-1]

2、访问格式

取值:数组名[索引]

赋值:数组名[索引]=值

3、数组长度

数组名.length,数组的最大索引是数组名.length-1

对于二维数组,数组名.length是行数,也就是一维数组的个数;数组名[下标].legnth才是某行的列数。

4、遍历数组

将数组中的每个元素分别获取出来,就是遍历

(1)普通for循环

void testFor() {
		//int[] arr = {10,5,15,1,6,7};
		int[] arr = new int[]{10,5,15,1,6,7};
		System.out.println("数组长度是:"+arr.length);
		
		for (int i = 0; i < arr.length; i++) {
			System.out.println("数组第"+i+"个元素是:"+arr[i]);
		}
	}

(2)增强for循环

void testForeach() {
		//int[] arr = {10,5,15,1,6,7};
		int[] arr = new int[]{10,5,15,1,6,8,0};
		System.out.println("testForeach数组长度是:"+arr.length);
		for (int i : arr) {
			//这个i指的是数组各个元素,跟简单for循环不一样
			System.out.println("数组第"+i+"个元素是:"+i);
		}
	}

(3)Arrays工具类toString(数组名)

//import java.util.Arrays;//记得要import这个包
void testArrayToString() {
	//int[] arr = {10,5,15,1,6,7};
	int[] arr = new int[]{5,1,6,7};
	System.out.println(Arrays.toString(arr)); 
}

(4)Arrays.deepToString(多维数组名)

Arrays.toString()方法打印的是二维数组中一维数组的地址

Arrays.deepToString()方法打印的是二维数组中一维数组中的值

void testDeepToString() {
        int[][] arr = {{10,20},{2,4},{1,2},{5,1}};
        System.out.println(Arrays.toString(arr)); 
        System.out.println(Arrays.deepToString(arr)); 
    }

输出结果:

[[I@659e0bfd, [I@2a139a55, [I@15db9742, [I@6d06d69c]
[[10, 20], [2, 4], [1, 2], [5, 1]]

五、数组长度不可变

数组的长度一旦确定就不能修改

如果定义了一个数组,重新赋值时,就会重新开辟新的存储空间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值