Java 数组
数组是一个对象,所以定义好的数组长度是固定的,在一个数组中,所有的数组元素都具有相同的数据类型。当然,由于java是面向对象的语言,而类与类支持继承关系,这样可能在父类类型的数组里存放了不同的子类类型元素。
一维数组
定义格式
静态
int[] arr1={1,2,3,6};
int[] arr2=new int[]{1,2,3,4,5,6,7,8};
动态
int[] arr3=new int[10];
注意:数组的length是一个属性,而字符串的length()是一个方法
二维数组
数组的数组---二维数组的每一个元素是一个一维数组
定义格式
静态
int[ ][ ] arr1={{1,2,3},{4,5,6}};
动态
数据类型[ ][ ] 数组名 = new 数据类型 [ 二维数组的长度/包含的一维数组的个数 ] [ 每个一维数组的长度 ];
int[ ][ ] arr = new int[3][5];//定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数
arr[0]---下标为0的位置上的一维数组
arr[1][3]---如果要获取具体的元素需要两个下标
数据类型[][] 数组名 = new 数据类型[二维数组的长度/包含的一维数组的个数][ ];
注意:不能定义 int[ ][ ] arr=new int[][3],这样会报错,这个的意思就“零行三列”
没有多维数组
如果从数组底形的运行机制来看,数组其实是一个引用,这个引用指向真实的数组内存。数组元素的类型也可以是引用,把之前的type换成int[],那么上面的定义数组的语法就是int [][] arrName,这样似乎就是定义了二维数组。但他的实质还是一维数组,只是数组元素也是引用。
注意:比较两个数组的是否相等就是用Array.equals(int[ ] a , int[ ] b)进行逐个比较。