首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[] arrayRefVar;//首选方法 dataType arrayRefVar[];//效果相同,但不推荐
Java中使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar = new dataType[arraySice];//定义一个什么类型的数组就new一个什么类型的数组 int[] number = new int[5];//定义一个int类型的数组,在这个数组中可以存放5个int类型的数据。 //也可以拆开来写 int[] number;//声明一个数组 number = new int[5];//创建一个数组
数组元素是通过索引访问的,数组索引从零开始。
int[] number = new int[5];
获取数组长度:
arrays.length
int[] number = new int[5]; System.out.println(number.length);//输出为5
二维数组的声明和创建
int[][] a = {{2,3},{5,4},{6,7,8}};//静态初始化 int[][] a = new int[2][5];//动态初始化
三维数组的声明和创建和二维数组基本一样,不同点就是多个 “[]”如下↓↓↓
int[][][] a = {{{2,3},{2,3,4}},{{2,3,4,5},{3,2,4}},{{1,2,3},{3,2}}};//静态初始化 int[][][] a = new int[2][3][4];//动态初始化
静态初始化
在数组定义的时候给它的元素赋值
int[] numbers = {1,2,3,4,5};
动态初始化
int[] numbers = new int[5];//这时数组元素已被默认初始化 //后面我们可以给数组元素赋值如: numbers[0] = 3; numbers[1] = 4;
默认初始化
请查看上条↑↑↑
我们给数组赋值,我们肯定要使用,比如要打印数组中所有的元素,肯定不会一个一个去打印吧,少的时候还可以接受,那比如说数组元素有几十个呢,就算你写出来了,代码也不够简洁,而且也费时费力。但是我们可以通过for循环来遍历数组,从而达到以上目的,具体代码如下。
for(int i = 0;i < array.length/*获取数组长度*/;i++){//注意:数组下标是从0开始,所以不可以写成i <= array.length System.out.println(array[i]);//打印数组元素 }
当然,也可以使用增强型的for循环:
for(int array : array){ //不使用下标,适用于打印数组元素,但是不适用于操作数组元素 System.out.println(array); }
应用的实例:我们需要打印出这个数组中的最大值。
int max = 0; for(int i = 0;i < array.length; i++){ if(array[i] > max){ max = array[i]; } } System.out.println(max);
public class SparseArray { public int[][] toSparseArray(int[][] array){ //获取非0个数 int sum =0;//创建一个计数器 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { if (array[i][j] != 0) { sum++; } } } //转换为稀疏数组 int[][] sparseArray = new int[sum+1][3]; sparseArray[0][0] = array.length; sparseArray[0][1] = array[0].length; sparseArray[0][2] = sum; int judge = 0; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { if (array[i][j] != 0) { judge++; sparseArray[judge][0] = i; sparseArray[judge][1] = j; sparseArray[judge][2] = array[i][j]; } } } return sparseArray; } //转换为普通数组 public int[][] toArray(int[][] array){ int[][] temperaryArray = new int[array[0][0]][array[0][1]]; for (int i = 1; i < array.length; i++) { temperaryArray[array[i][0]][array[i][1]] = array[i][2]; } return temperaryArray; } }