1. 一维数组 1.1 声明及创建 1 2 3 4 5 6 7 8 9 10 11 12 double [] array;double [] array = new double [10 ];int [] array = {2 , 3 , 5 , 7 , 11 , 13 };new int [] {17 , 19 , 23 , 29 };
1.2 数组的遍历 1 2 3 4 5 6 7 8 9 for (int i = 0 ; i < array.length(); i++) { System.out.println(array[i]); } for (int i: array) { System.out.println(i); }
1.3 数组常用方法(Arrays类) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import java.util.Arrays;Arrays.toString(array); Arrays.sort(array); Arrays.binarySearch(array, 11 ); Arrays.equals(array1, array2); Arrays.fill(array, 11 ); Integer[] newArray = Arrays.copyOf(array, array.length); List<Integer> asList = Arrays.asList(1 , 2 , 3 , 4 , 5 );
2. 多维数组 1.1 声明及创建 1 2 3 4 5 6 7 8 int [][] array;int [][] array = new int [10 ][10 ];int [][] array = {{1 , 2 , 3 , 4 }, {5 , 6 , 7 , 8 }, {9 , 10 , 11 , 12 }};
1.2 遍历 1 2 3 4 5 6 7 8 9 10 11 12 13 for (int i = 0 ; i < array.length; i++) { for (int j = 0 ; j < array[i].length; j++) { System.out.println(array[i][j]); } } for (int [] interval : array) { for (int i : interval) { System.out.println(i); } }
若要快速打印二维数组的所有元素,也可以使用Arrays类中的deepToString方法(返回String类型元素):
1 Arrays.deepToString(array);
1.3 不规则数组
Java其实没有多维数组,只有一维数组,多维数组其实就是数组的数组。例如 int[][] array = new int[10][10]; 既不同于 C 中 int array[10][10]; 也不同于 int (*array)[6] = new int[10][10]; 这正是 Java 的优势所在。
基于这个优势,Java 可以很方便的对两行进行交换:
1 2 3 int [] temp = array[i];array[i] = array[j]; array[j] = temp;
在构造数组时,也可以给数组每行不同的空间大小:
1 2 3 4 5 int [][] array = new int [4 ][];array[0 ] = new int [4 ]; array[1 ] = new int [3 ]; array[2 ] = new int [2 ]; array[3 ] = new int [1 ];