数组的定义
数组声明创建
首先必须声明数组变量,才能在程序中使用数组,下面是声明数组变量的语法:
dataType[] arrayRefVar; //首选方法 或者 dataType arrayRefVar[];//效果相同,但不是首选方法
Java语言通过new操作符来创建数组,语法如下:
dataType[] arrayRefVar=new dataType[arraySize]
数组的元素是通过索引访问的,数组索引从0开始
获取数组长度 arrays.length
java内存分析:
三种初始化
静态初始化
int[] a={1,2,3};
动态初始化
int[] a=new int[2]; a[0]=1; a[1]=2;
数组的默认初始化
package com.ljh.array; public class Demo1 { public static void main(String[] args) { int[] arr1={1,2,3,4}; for (int x=0;x<arr1.length;x++){ System.out.println(arr1[x]); } int[] arr2=new int[10]; arr2[0]=5; arr2[1]=6; System.out.println(arr2[2]); } }
数组的四个基本特点
数组对象本身是在堆中的。
数组边界
下标的合法区间:[0,length-1],如果越界就会报错
package com.ljh.array; /** * 下标越界 */ public class Demo2 { public static void main(String[] args) { int[] arr={12,23,45}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } System.out.println(arr[3]); } }
ArrayIndexOutOfBoundsException:数组下标越界异常
小结:
数组作为方法参数
public static void printArr(int[] arr){ for (int a:arr){ System.out.println(a); } }
数组作为方法返回值
public static int[] reversalArr2(int[] arr){ int[] newArr=new int[arr.length]; for (int x=0,y=arr.length-1;x<arr.length;x++,y--){ newArr[y]=arr[x]; } return newArr; }
package com.ljh.array; import java.util.Arrays; /** * 反转数组 */ public class Demo3 { public static void main(String[] args) { int[] arr=new int[]{1, 2, 3, 47, 9, 10}; printArr(arr); int[] ints = reversalArr(arr); System.out.println(Arrays.toString(ints)); } public static void printArr(int[] arr){ for (int a:arr){ System.out.println(a); } } //反转数组 public static int[] reversalArr(int[] arr){ for (int x=0,y=arr.length-1;x<y;x++,y--){ int temp=arr[x]; arr[x]=arr[y]; arr[y]=temp; } return arr; } //反转数组 public static int[] reversalArr2(int[] arr){ int[] newArr=new int[arr.length]; for (int x=0,y=arr.length-1;x<arr.length;x++,y--){ newArr[y]=arr[x]; } return newArr; } }