
【本节目标】理解数组基本概念掌握数组的基本用法数组与方法互操作熟练掌握数组相关的常见问题和代码一. 数组的基本概念可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。1. 数组的创建及初始化T[]数组名newT[N];T表示数组中存放元素的类型T[]表示数组的类型N表示数组的长度int[]array1newint[10];// 创建一个可以容纳10个int类型元素的数组double[]array2newdouble[5];// 创建一个可以容纳5个double类型元素的数组String[]array3newdouble[3];// 创建一个可以容纳3个字符串元素的数组2. 数组的初始化数组的初始化主要分为动态初始化以及静态初始化。动态初始化在创建数组时直接指定数组中元素的个数int[]arraynewint[10];静态初始化在创建数组时不直接指定数据元素个数而直接将具体的数据内容进行指定T[]数组名称{data1,data2,data3,...,datan};int[]array1newint[]{0,1,2,3,4,5,6,7,8,9};double[]array2newdouble[]{1.0,2.0,3.0,4.0,5.0};String[]array3newString[]{hell,Java,!!!};静态初始化虽然没有指定数组的长度编译器在编译时会根据{}中元素个数来确定数组的长度。静态初始化时, {}中数据类型必须与[]前数据类型一致。静态初始化可以简写省去后面的new T[]。静态和动态初始化也可以分为两步但是省略格式不可以nt[]array1;array1newint[10];int[]array2;array2newint[]{10,20,30};// 注意省略格式不可以拆分, 否则编译失败// int[] array3;// array3 {1, 2, 3};如果没有对数组进行初始化数组中元素有其默认值3. 数组的使用数组中元素访问数组在内存中是一段连续的空间空间的编号都是从0开始的依次递增该编号称为数组的下标数组可以通过下标访问其任意位置的元素。int[]arraynewint[]{10,20,30,40,50};System.out.println(array[0]);System.out.println(array[1]);System.out.println(array[2]);System.out.println(array[3]);System.out.println(array[4]);// 也可以通过[]对数组中的元素进行修改array[0]100;System.out.println(array[0]);抛出了java.lang.ArrayIndexOutOfBoundsException异常. 使用数组一定要下标谨防越界.2. 遍历数组所谓 “遍历” 是指将数组中的所有元素都访问一遍, 访问是指对数组中的元素进行某种操作int[]arraynewint[]{10,20,30,40,50};for(inti0;i5;i){System.out.println(array[i]);}在数组中可以通过 数组对象.length 来获取数组的长度int[]arraynewint[]{10,20,30,40,50};for(inti0;iarray.length;i){System.out.println(array[i]);}也可以使用 for-each 遍历数组int[]array{1,2,3};for(intx:array){System.out.println(x);}for-each 是 for 循环的另外一种使用方式. 能够更方便的完成对数组的遍历. 可以避免循环条件和更新语句写错.4, 二维数组二维数组本质上也就是一维数组, 只不过每个元素又是一个一维数组数据类型[][]数组名称new数据类型[行数][列数]{初始化数据};int[][]arr{{1,2,3,4},{5,6,7,8},{9,10,11,12}};for(introw0;rowarr.length;row){for(intcol0;colarr[row].length;col){System.out.printf(%d\t,arr[row][col]);}System.out.println();}//执行结果1234567891011125.关于一维数组和二维数组快速遍历一维数组Arrays.toString(数组)importjava.util.Arrays;publicclassTest{publicstaticvoidmain(String[]args){int[]arr{1,2,3,4,5};// 快速打印System.out.println(Arrays.toString(arr));//打印一维数组}}二维数组Arrays.deepToString(数组)importjava.util.Arrays;publicclassTest{publicstaticvoidmain(String[]args){int[][]arr{{1,2,3},{4,5,6},{7,8,9}};// 快速打印System.out.println(Arrays.deepToString(arr));//deep深度打印二维数组}}