1. 动态初始化: int [] arrry=new int[]{1,2,3,4} 2. 静态初始化数组: int []arry={1,2,3,4} ** 注意: ** 静态初始化的时候,数组元素个数和初始化数据类型格式是一致的 1. 在使用数组时要防止数组越界发生:下标访问操作有效范围是 [1,length] 例如: Exception in thread “ main ” java.lang.ArrayIndexOutOfBoundsException: 100 at Test.main(Test.java:4) ,此异常就代表数组越界。 int [] arrry=new int[]{1,2,3,4}; for(int i=0;i<array.length;i++){ System.out.println(array;) } 2.for-each int [] arrry=new int[]{1,2,3,4}; for(int x:array){ System.out.println(x); } for-each 是 for 循环的另外一种使用方式 . 能够更方便的完成对数组的遍历 . 可以避免循环条件和更新语句写错 . 4>.数组的拷贝 : 指的是将一个数组的部分内容替换掉外汇返佣 http://www.fx61.com/ 另一个数组的部分内容(必须是连续的) 1.System.arraycopy():是被 native 所修饰的方法,特点是速度快 2.Array.copyof():底层调用了 System.arrayCopy() 方法的,相对于上面的方法来说,速度相对较慢 3.Array.clone():用法为原数组 .( 拷贝的数组 ) 拷贝对引用类型来说是浅拷贝(改变一个对另一个有影响); 5>.Arrays常用函数 ( 操作数组的工具类)需要导入: import java.util.Arrays; 1.Array.equals()用于比较两个数组是否相等 3.Array.binarySearch()用于在已经排序的数组中查找元素 4.Array.toString()产生数组的 String 表示 1.数据类型 [][] 数组名称 =new 数据类型 [ 行数 ][ 列数 ]{ 初始化数据 } int[][]array=new int[3][3]{1,2,3,4}; for(int row=0;row<array.length,row++){ for(int col=0;col<array[row].length;col++){ int[][] arr = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; for (int row = 0; row < arr.length; row++) { for (int col = 0; col < arr[row].length; col++) { System.out.printf("%d\t", arr[row][col]); } System.out.println(""); } } } 1. arraycopy public static void arraycopy(sourceArray,int index1,copyArray,index2,int length) 即从 sourceArray的 index1 位置开始,后面 length 个元素,放到 copyArray 数组从 index2 的位置 注意这里的 index1,2都是数组的索引,即数组的下标 如果 copyArray数组长度小于 length ,程序会崩溃 void test_arraycopy() { int []a = {1,2,3,4,5}; int []b = {6,7,8,9,10}; System.arraycopy(a, 2, b, 3, 2); System.out.println("\n通过复制以后的到的数组为: "); for(int i:b) { System.out.printf("%d ",i); } System.out.println(); } 运行结果: 通过复制以后的到的数组为: 6 7 8 3 4 copyOf方法原型: public static float[] copyOf(float []original,int newLength) 从数组的第一个元素开始复制,复制长度为 length,若长度超过数组原长,则超出元素为默认值 0 void test_copyOf() { int []a = {11,22,33,44,55}; int []b = Arrays.copyOf(a, 7); System.out.println("测试 copyOf 函数,复制后得到的 b 数组为 "); for(int i:b) { System.out.printf("%d ",i); } System.out.println("\n通过 toString 方法输出数组 \n"+Arrays.toString(b)); } 运行结果: 11 22 33 44 55 0 0 原数组长度为 5 , length 为 7 ,故复制后的数组最后两位为默认值 0 copyOfRange方法原型: public static double[] copyOfRange(double []original,int from,int to) 从 original下标为 from 的位置开始复制,到 to-1 的位置结束,返回一个长度为 to-from 的数组 void test_arrayOfRange() { int []a = {55,33,44,22,11}; int []b = Arrays.copyOfRange(a, 1, 4); System.out.println("测试 copyOfRange 方法: "); System.out.println(Arrays.toString(b)); } [33, 44, 22] { } 或者用 Arrays.toString(数组名 ) 方法 void print_array() { int []a = {1,2,3,4,5}; System.out.println("采用改进方法遍历数组 a, 输出结果 :"); for(int i:a) { System.out.printf("%d ",i); } System.out.println("调用 toString 方法输出数组 b"); System.out.println(Arrays.toString(b)); } 运行结果: 1 2 3 4 5 [1, 2, 3, 4, 5] 该方法有两个函数原型: public static void sort(doule a[]) public static void sort(doule a[],int start,int end); 第一种,将数组按升序全排序 第二种从索引为 start到索引为 end-1 的位置,升序排序 void test_arrayOfRange() { int []a = {55,33,44,22,11}; int []b = Arrays.copyOfRange(a, 1, 4); Arrays.sort(a, 1, 4); Arrays.sort(b); System.out.println("排序后 b 数组为: "); for(int i:b) { System.out.printf("%d ",i); } System.out.println("\n排序后 a 数组为: "); for(int i:a) { System.out.printf("%d ",i); } System.out.println(); } 22 33 44 55 22 33 44 11 5. 在数组中查找一个数的方法: binarySearch 方法原型: public static int binarySearch(double [] a,double number)返回要寻找的数 number的索引,若没查找到,则返回一个负数 void test_binarySearch() { int a[] = {1,2,3}; int x; x= Arrays.binarySearch(a, 2); System.out.println("数组 a 为: "); System.out.println(Arrays.toString(a)); System.out.println("数字 x 在数组中的索引(下标)为 :"+x); } 运行结果: [1, 2, 3] 数字 x在数组中的索引(下标)为 :1 更多技术资讯可关注:itheimaGZ获取 |