数组是一种对象(基本数据类型只有那8中)
默认初始化:
数字数组初始化,所有元素初始化为0
String:默认初始化null(对象数组都这样)
char:输出方框,什么鬼
boolean:默认false
new的时候必须确定长度,int[] a=new int[];不行
length返回数组长度
一旦创建了数组,就不能再改变length
int[] a={1,2,3}; //声明并初始化,length确定为3,也可以写成匿名数组
int[] a=new int[]{1,2,3};
Java数组长度可以为0,但是和null不同,类似于String的空串
数组拷贝
int[] a={1,2,3};
int[] b=a;
b[1]=10;
System.out.println(a[1]);//a也受改动,输出10
将一个数组变量赋给另一个,
两个变量将引用同一个数组(不能随便赋值哈)
如果希望将数组的值拷贝到一个新的数组,使用Arrays类的copyOf方法
int[] a={1,2,3};
int[]b = Arrays.copyOf(a, a.length*2); //b长度为6,值为1,2,3,0,0,0
如果设置b的长度小于a,会舍弃a后面的元素
数组排序
Arrays.sort(a)方法,使用快速排序,将a的值从小到大排列。
Math.random() 返回[ 0,1)之间的随机数(包含0,不包含1)
(int)Math.random() *n,返回0~(n-1)之间的随机整数
多维数组
数组的每一个元素是一个数组,Java没有真正的多维数组,只有一维数组
int[][] a=new int[][];//错误,和一维一样,不能new的时候还没确定长度
int[][] b=new int[2][];
System.out.println(b[0]+" "+b[1]);//可以,自动将两个数组对象初始化为null
int [][] a={ {1,2}, {2,3,4}
}; System.out.println(a[0].length+" "+a[1].length);//长度分别是2和3,可以不同的