Java知识19 数组(比较难掌握)【多测师】
一、数组是重要的数据结构之一 Java中的数组用来存储固定大小的同类型的元素(是同类型的) 可声明数组变量number[100] 代替声明100个独立变量number0,number1,...number99 二、声明数组变量 dataType[] arrayRefVar; // 首选的方法 或 dataType arrayRefVar[]; // 效果相同,但不是首选方法 实例: double[] myList; // 首选的方法 或 double myList[]; // 效果相同,但不是首选方法 —--C/C++语言用的多的写法 三、创建数组 Java用new操作符创建数组 语法如下 arrayRefVar = new dataType[arraySize]; 解释如上语法: 1.使用dataType[arraySize]创建了一个数组 2.把新创建的数组的引用赋值给变量arrayRefVar 重点:数组变量的声明和创建数组可以用一条语句完成 方式一:dataType[] arrayRefVar = new dataType[arraySize]; 方式二:dataType[] arrayRefVar = {value0, value1, ..., valuek}; 数组的元素是通过索引访问的 数组索引从0开始 索引值从0到arrayRefVar.length-1 实例: 先声明一个数组变量myList,接着创建一个包含10个double类型元素的数组,并且把他的引用赋值给myList变量 public class Student { public static void main(String[] args) { int size = 3; double[] myList = new double[size]; myList[0] = 12.4; myList[1] = 14.2; myList[2] = 19.3; double total = 0; for (int i = 0; i < size; i++) { total += myList[i]; } System.out.println(total); } } 运行结果: 45.900000000000006 四、处理数组 数组的元素类型和数组的大小都是确定的,所以处理数组一般用基本循环或者foreach循环 public class Student { public static void main(String[] args) { double[] arr = { 1.2, 9.1, 9, 5.3 }; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } // 计算所有元素之和 double total = 0; for (int i = 0; i < arr.length; i++) { total += arr[i]; } System.out.println("Total is:" + total); // 查找最大的元素 double max = arr[0]; for (int i = 1; i < arr.length; i++) { if (arr[i] > max) max = arr[i]; } System.out.println("Max is:" + max); } } 运行结果: 1.2 9.1 9.0 5.3 Total is:24.599999999999998 Max is:9.1 五、foreach循环 可以在不使用下标的情况下遍历数组 举列: public class TestArray { public static void main(String[] args) { double[] myList = { 1.9, 2.9, 3.4, 3.5 }; // 打印所有数组元素 for (double element : myList) { System.out.println(element); } } } 运行结果: 1.9 2.9 3.4 3.5 六、数组还可以作为函数的参数 public static void printArray(int[] array) printArray(new int[]{3, 1, 2, 6, 4, 2}); —调用函数 七、数组作为函数的返回值 八、多维数组 多维数组可以看为是数组的数组,比如二维数组就是一个特殊的一堆数组,其每一个元素都是一个一维数组 String str[][] = new String[3][4]; 九、数组倒叙排序 public class Test2 { public static void main(String[] args) { int[] test = { 1, 2, 4, 5, 7 }; for (int i : test) { System.out.print(i + " "); } System.out.println("\n"); test = Test2.reverse(test); for (int i : test) { System.out.print(i + " "); } } public static int[] reverse(int[] arr) { int[] result = new int[arr.length]; for (int i = 0, j = result.length - 1; i < arr.length; i++, j--) { result[j] = arr[i]; } return result; } }