数组(Array)-Java

📅 2026/7/13 14:18:44 👁️ 阅读次数 📝 编程学习
数组(Array)-Java

一、数组的定义

1、数组概述:是一个容器,本身属于引用数据库类型。

2、作用:一次存储多个数据。

3、特点:

(1)既可以存储基本数据类型,也可以存储引用数据类型。

(2)定长:数组定义时长度为多少,使用时就做多能存储多少数据。

4、定义

(1)动态初始化:在定义数组时,只规定长度

数据类型[] 数组名 = new 数据类型[]

(2)静态初始化:定义时直接给出数据

数据类型[] 数组名 = new 数据类型[] {元素1,元素2,...} => 不常用 数据类型[] 数组名 = {元素1,元素2,...} =>推荐使用
//动态定义 int[] arr1 = new int[5] String[] arr2 = new String[5] //静态定义 String arr3 = {"张三","李四"}

二、数组的操作

1、获取数组的长度

(1)格式

数组名.length

(2)注意:length后面不要带小括号,因为length不是方法,而是属性。

2、索引

(1)特点:元素在数组中存放的位置(下标)。

(2)特点:

a、索引唯一。

b、索引都是从0开始的,最大索引长度是数组长度-1

(3) 索引的作用:用来查找和存储数据。

3、存储元素

格式:

数组名[索引值] = 值
int[] arr1 = new int[3]; Scanner sc = new Scanner(System.in); for (int i = 0; i < arr1.length; i++) { // arr1.length动态控制添加几个数据 arr1[i] = sc.nextInt(); }

4、获取元素

(1)格式

数组名[索引值]

(2)注意:

a、直接输出数组名,会输出数组在内存中的地址。

b、如果元素中没有存数据,获取数据时,会获取到元素的默认值。

整数:0 小数:0.0 引用数据类型:null

5、数组的遍历

遍历:将元素从数组中一个个获取出来(循环)

int[] arr1 = new int[3]; for (int i = 0; i < arr1.length; i++) { System.out.println(arr1[i]); }

三、操作数组常见异常

1、索引越界异常:ArrayIndexOutBoundsException

int[] arr = new int[3]; //超出索引范围,就会抛出异常 arr[5] = 100;

2、空指针异常:NullPinterException

原因:当一个对象为null时,再调用此对象中的其他成员。

int[] arr = new int[3]; arr = null; //将数组置为空 System.out.println(arr.lenght) //抛出异常

练习

//查找数组中元素的最大值 int[] arr = {10,15,3,46,50,22,34}; int temp = arr[0]; for(int i =1 ; i<arr.length;i++){ if(temp<arr[i]){ temp=arr[i]; } } System.out.println(temp);

四、数组的高级使用

1、数组复制

int[] arr1 = {1,2,3,4}; int[] arr2 = new int[4]; for (int i = 0; i < arr1.length; i++) { arr2[i] = arr1[i]; }

2、数组扩容:改变地址值。

int[] ald_arr = {1,2,3,4,5}; int[] new_arr = new int[10]; //将老数组中的值给新数组 for (int i = 0; i < ald_arr.length; i++) { new_arr[i] = ald_arr[i]; } //将新数组的地址值,给老数组 ald_arr = new_arr; for (int i = 0; i < ald_arr.length; i++) { System.out.println(ald_arr[i]); }

3、数组合并

int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = {6, 7, 8, 9, 10}; //新数组:用于保存合并后的两个数组 int[] newArr = new int[arr1.length + arr2.length]; //将arr1的元素放入到数组中 for (int i = 0;i<arr1.length;i++){ newArr[i] = arr1[i]; } //arr2的数据添加到新数组中 for (int i = 0; i < arr2.length; i++) { newArr[arr1.length+i] = arr2[i]; //+i:是为了保证数组下标会发生变化,不会永远停留在 newArr[arr1.length] = 5 } for (int i = 0; i < newArr.length; i++) { System.out.print(newArr[i]+" "); } //1 2 3 4 5 6 7 8 9 10

五、二维数组

1、定义与格式

(1)概述:数组中套了多个数组。

(2)定义格式

a、动态初始化

数据类型[][] 数组名 = new 数据类型[m][n] m:代表二维数组长度 n:代表一维数组长度

b、静态初始化

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

2、获取二维数组的长度

数组名.length
int[][] arr = {{1,2,3,4},{5,6,7},{9}}; //获取数组长度 System.out.println(arr.length); //获取二维数组中,一维数组的长度 for (int i = 0; i < arr.length; i++) { System.out.println(arr[i].length); }

3、获取二维数组的数据

数组名[i][j] i:二维数组的下标 j:二维数组中,一维数组的下标
int[][] arr = {{1,2,3,4},{5,6,7},{9}}; System.out.println(arr[1][2]); //7

4、二维数组赋值

//数组名[][] = 值 int[][] arr = new int[2][3]; arr[0][1] = 100;

5、二维数组的遍历

int[][] arr = new int[2][3]; arr[0][1] = 100; for (int i = 0; i < arr.length; i++) { //arr[i]:表示的是一维数组 for (int j = 0;j<arr[i].length;j++){ System.out.print(arr[i][j]); } } //010 //000