引用数据类型之==数组==
一维数组
声明
数据类型[] 数组名;
数据类型 数组名[];
int[] array;
int array[];
初始化
动态初始化
指定长度:数据类型[] 数组名 = new 数据类型[数组长度]
此时数组中元素是不同形式的零
int[] array = new int[10];
静态初始化
指定内容
- 标准格式:
数据类型[] 数组名称 = new 数据类型[] {内容1,内容2,...}
- 省略格式:
数据类型[] 数组名称 = {内容1,内容2,...}
int[] array = new int[]{1,2,3}; //标准格式
int[] array = {1,2,3}; //省略格式
int[] array;
array = new int[]{1,2,3}; //标准格式可以分开写成两条语句
int[] array;
//array = {1,2,3}; //报错,省略格式必须合并写
属性
- length:数组的长度
数组的遍历
for(int i = 0;i < array.length;i++){ //可读可写
System.out.println(array[i]);
}
for(int i: array){ //只能读不能写,变量i的数据类型与数组元素数据类型一致
System.out.println(i);
}
二维数组
声明
数据类型[][] 数组名;
数据类型 数组名[][];
int[][] array;
int array[][];
初始化
动态初始化
指定长度:数据类型[][] 数组名 = new 数据类型[行][列]
此时数组中元素是不同形式的零
int[][] array = new int[2][3]; //开辟2行3列的二维数组
int array1[][] = new int[2][]; //可以只指定行,不指定列
System.out.println(array[0]); //null
System.out.println(array[0][0]);
//由于没有指定列,所以array存放的是null,空指针一次
//array = new int[3]; //报错,因为array是二维数组数据类型
//array[0] = new byte[1]; //报错,必须和二维数组元素数据类型保持一致
array[0] = new int[2];
array[1] = new int[5];
//二维数组可以为不同行设置不同列的数组
静态初始化
指定内容
- 标准格式:
数据类型[][] 数组名称 = new 数据类型[] {{行1内容1,行1内容2,...},{行2内容2,...},...}
- 省略格式:
数据类型[][] 数组名称 = {{行1内容1,行1内容2,...},{行2内容2,...},...}
//int[][] array = new int[][]{1,2,3}; //报错,不知道是那行那列元素
//int[][] array = new int[2][]{1,2,3}; //报错,不知道每行几个元素
//int[][] array = new int[][2]{1,2,3,4} //报错,不支持静态初始化指定大小
//int[][] array = new int[2][2]{1,2,3,4} //报错,不支持静态初始化指定大小
int[][] array = new int[][]{{1,2}{3,4}};
int[][] array = {{1}{1,2,3},{1,2}};
//由于简写的方式存在,所以无法为初始化时指定大小,大小只能由大括号分隔
//每行数组可以不同长度
Arrays工具类
static String toString(Object[] array)
:参数是数组,返回[元素1,元素2,...]
的字符串static void sort(Object[] array)
:参数是数组,将数组升序排序,无返回值static boolean equals(Object[] a, Object[] a2)
:比较两个数组是否相同,包括顺序,比较的是元素的equals()方法static int binarySearch(Object[] array,Object obj)
:对排好序的数组,进行二分法查找数组array中obj元素的下标,并返回,查不到返回-1static <T> List<T> asList(T... a)
:返回一个集合,集合内容是参数列表的所有参数,且该集合长度不可改变
System操作数组方法
static void arraycopy(Object[] src,int srcPos,Object[] dest, int destPos,int length)
:src数组从srcPos下标处,dest数组的destPos下标处,从src复制到dest数组中length个元素
Comments NOTHING