数组的四个基本特点
-
其长度是确定的。数组一旦被创建,他的大小就是不可以改变的
-
其元素必须是相同类型,不允许出现混合类型
-
数组中的元素可以是任何数据类型,包括基本类型和引用类型
-
数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,JAVA 中 对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
数组边界
-
下表的合法区间 [0,length – 1],如果越界就会报错
public class Demo_03 { public static void main(String[] args) { int [] a = new int [2]; System.out.println(a[2]); } } -
`ArrayIndexOutOfBoundsException:数组下标越界异常
-
小结:
-
数组是相同数据类型 (数据类型可以为任意类型) 的有序集合
-
数组也是对象。数组元素相当于对象的成员变量
-
数组长度的确定的。不可变的。如果越界,则报:
ArrayIndexOutOfBoundsException
-
数组使用
-
For-Each 循环
public class Demo_03 { public static void main(String[] args) { int [] arrays = new int[20]; for (int i = 0; i < arrays.length; i++) { arrays[i] = i;//给数组元素赋值 System.out.println(arrays[i]);//打印输出数组元素 } System.out.println("========================"); //计算所有元素的和 int sum = 0;//声明并归零总和 for (int i = 0; i < arrays.length; i++) { arrays[i] = i;//赋值元素 sum = arrays[i] + sum;//计算元素总和 } System.out.println(sum);//打印输出元素总和 System.out.println("==========================="); //查找最大元素 int max = arrays[0];//声明 max for (int i = 0; i < arrays.length; i++) { arrays[i] = i;//赋值数组元素 if (max < arrays[i]) { //判断max 是否 小于 数组当前元素 max = arrays[i];//如果 true 那么将 max 赋值当前元素数值 } } System.out.println(max);//打印输出max 数值 } }以上是普通
for循环public class Demo_04 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; for (int array : arrays) { System.out.println(array); } } }以上是
增强型for循环 -
数组作方法入参
public class Demo_04 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; printArray(arrays); } public static void printArray (int [] arrays) { for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i] + " "); } } } -
数组作返回值
反转数组
public class Demo_04 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; printArray(reverse(arrays)); } //反转数组 public static int [] reverse (int[] arrays) { int[] arrays_02 = new int[arrays.length]; for (int i = 0,j = arrays.length-1; i < arrays.length; i++,j--) { arrays_02[j] = arrays[i]; } return arrays_02; } public static void printArray (int [] arrays) { for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i] + " "); } } }