数组(Array)-Java

📅 2026/7/13 14:15:08
数组(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格式数组名.length2注意length后面不要带小括号因为length不是方法而是属性。2、索引1特点元素在数组中存放的位置下标。2特点a、索引唯一。b、索引都是从0开始的最大索引长度是数组长度-13 索引的作用用来查找和存储数据。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 引用数据类型null5、数组的遍历遍历将元素从数组中一个个获取出来循环int[] arr1 new int[3]; for (int i 0; i arr1.length; i) { System.out.println(arr1[i]); }三、操作数组常见异常1、索引越界异常ArrayIndexOutBoundsExceptionint[] 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 ; iarr.length;i){ if(temparr[i]){ temparr[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;iarr1.length;i){ newArr[i] arr1[i]; } //arr2的数据添加到新数组中 for (int i 0; i arr2.length; i) { newArr[arr1.lengthi] 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、获取二维数组的长度数组名.lengthint[][] 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]); //74、二维数组赋值//数组名[][] 值 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;jarr[i].length;j){ System.out.print(arr[i][j]); } } //010 //000