05-引用数据类型之==数组==

nobility 发布于 2021-02-27 1996 次阅读


引用数据类型之==数组==

一维数组

声明

  1. 数据类型[] 数组名;
  2. 数据类型 数组名[];
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);
}

二维数组

声明

  1. 数据类型[][] 数组名;
  2. 数据类型 数组名[][];
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元素的下标,并返回,查不到返回-1
  • static <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个元素
此作者没有提供个人介绍
最后更新于 2021-02-27