数组的四个基本特点
- 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
- 其元素必须是相同类型,不允许出现混合类型。
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
写一个数组:
public class Demo1 { //变量的类型 变量的名字 = 变量的值; //数组类型 public static void main(String[] args) { //1、声明一个数组 int[] nums; //2、创建一个数组 nums = new int[10]; //3、给数组元素中赋值 nums[0] = 1; nums[1] = 2; nums[2] = 3; nums[3] = 4; nums[4] = 5; nums[5] = 6; nums[6] = 7; nums[7] = 8; nums[8] = 9; nums[9] = 10; //4、计算所有元素的和 int i; int sum = 0; //获取数组长度:arrays.length for (i = 0; i < nums.length; i++){ sum = sum + nums[i]; } System.out.println("总和为:" + sum); } }
数组的静态初始化与动态初始化:
public class Demo2 { public static void main(String[] args) { //静态初始化:创建+赋值 int[] a = {1,2,3,4,5,6,7,8,}; System.out.println(a[0]); //动态初始化:包含默认初始化 int[] b = new int[10]; b[0] = 5; b[1] = 10; System.out.println(b[0]); System.out.println(b[1]); } }
打印全部的数组元素、计算数组元素的和、查找数组元素中的最大值:
public class Demo3 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; //打印全部的数组元素 for (int i = 0; i < arrays.length; i++) { System.out.println(arrays[i]); } System.out.println("==========="); //计算所有元素的和 int sum = 0; for (int i = 0; i < arrays.length ; i++) { sum += arrays[i]; System.out.println("sum =" + sum); } System.out.println("==========="); //查找最大元素 int max = arrays[0]; for (int i = 0; i < arrays.length ; i++) { if (arrays[i] > max){ max = arrays[i]; } } System.out.println("max = " + max); } }
数组与反转数组:
public class Demo4 { public static void main(String[] args) { int[] arrays = {1, 2, 3, 4, 5}; // JDK1.5,没有下标 // for(int array : arrays){ // System.out.println(array); // } printArray(arrays); int[] reverse = reverse(arrays); printArray(reverse); } //打印数组元素 public static void printArray(int[] arrays){ for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i]+" "); } } //反转数组 public static int[] reverse(int[] arrays){ int[] result = new int[arrays.length]; //反转的操作 for (int i = 0, j = result.length-1; i < arrays.length; i++, j--) { result[j] = arrays[i]; } return result; } }
数组的数值与长度:
public class Demo5 { public static void main(String[] args) { //[4][2] int[][] array = {{1,2}, {2,3}, {3,4}, {4,5}}; System.out.println(array[2][0]); //第[2][0]个位置的数值 System.out.println(array[2][1]); //第[2][1]个位置的数值 System.out.println(array.length); //数组长度 System.out.println(array[2].length); //数组第3行长度 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.println(array[i][j]); } } } }
小结:
- 数组是相同数据类型(数据类型可以为任意类型)的有序集合。
- 数组也是对象。数组元素相当于对象的成员变量。
- 数组长度是确定,不可变的。如果越界,则报:ArrayIndexOutOfBounds。