一、数组的动态初始化

1、声明

数据类型[] 数组名;或

数据类型 数组名[];

2、开辟空间

数组名 = new 数据类型[长度];//长度必不可少

3、手动赋值

数组名[下标] = 值;

4、使用(打印、运算、判断等)

System.out.println(数组名[下标]);

【注意事项】

① 数组的元素如果不赋值,也有默认值

int0

double 0.0

char \u0000

boolean false

引用类型 null

② 访问数组的元素时,下标必须在0——长度-1 的范围内,否则报数组下标越界的异常

③ 数组的长度,可以通过 数组名.length表示,提高代码的维护性

④ 数组的赋值和使用,往往可以通过搭配for循环一起操作

for(int i=0;i

//每一个元素表示为:数组名[i]

}

二、数组的静态初始化

步骤1:声明并初始化

语法:数据类型[] 数组名 = new 数据类型[]{值,值,值};

或 数据类型[] 数组名 = {值,值,值};

int[] arr = {3,4,5,6,100};

//int[] arr2 = new int[] {3,4,5,6,100};

步骤2:使用

for(int i=0;i

//每一个元素表示为:数组名[i]

}

三、数组的复杂使用

数组的赋值

int[] arr1={1,2,3};int[] arr2=arr1;  // 引用型赋值,赋的是地址

特点:

数组属于引用类型,数组型数据是对象,数组中的每个元素相当于该对象的成员变量。

基本类型的赋值,赋的是值(内容),其中一个变量对其更改不影响另外一个

引用类型的赋值,赋的是地址,两个引用共同指向一个地址(对象),所以其中一个引用对其更改影响另外一个

注意:如果希望引用类型赋值时,只赋内容,则可以使用循环赋值的方式,语法:

int[] array2 = new int[array1.length];for(int i=0;i

array2[i]=array1[i];

}

数组的反转

方式一:

for(int i=0;i
int temp =arr[i];
arr[i]= arr[arr.length-1-i];
arr[arr.length-1-i] =temp;
}

方式二:

//①创建一个新数组,长度=arr.length
int[] newArr = new int[arr.length];//②逆序赋值/*i
0 arr.length-1
1 arr.length-2*/
for(int i=0,j=arr.length-1;i
newArr[j]=arr[i];
}//③将新数组的地址赋值给arr
arr=newArr;

四、数组的高级使用

数组的添加

//----------------具体的添加业务----------//①新建一个数组,长度=arr.length+1

int[] newArr = new int[arr.length+1];//②依次为新数组的元素赋值

for(int i=0;i

newArr[i]=arr[i];

}//③将add赋值到新数组的空位上

newArr[newArr.length-1] =add;//④将newArr的地址赋值给arr

arr =newArr;

System.out.println("添加成功!");

数组的插入

//----------------------具体的插入业务-----------//①创建新数组,长度=arr.length+1

int[] newArr = new int[arr.length+1];//②循环赋值

for(int i=0;i

newArr[i]=arr[i];

}//③循环后移

for(int i=newArr.length-1;i>index;i--){

newArr[i]=newArr[i-1];

}//④将新元素赋值到index位置上

newArr[index] =add;//⑤将newArr的地址赋值给arr

arr =newArr;

System.out.println("插入成功!");

五、二维数组

二维数组其实就是 一维数组的组合,也就是一维数组的定义类型又为一维数组

方式一:动态初始化

1.声明

数据类型[][] 数组名;或

数据类型 数组名[][];

数据类型[] 数组名[];

int[][] num;int[] num[];int num[][];

2.开辟空间

情况1:固定列数

数组名 = new 数据类型[行数][列数];

情况2:不固定列数

数组名 = new 数类型[行数][];

3.赋值

情况1:固定列数

for(int i=0;i
for(int j=0;j
nums[i][j]=值;
}
}

情况2:不固定列数

for(int i=0;i
nums[i]=new数据类型[长度];for(int j=0;j
nums[i][j]=值;
}
}

4.使用(打印、求和、最值)

for(int i=0;i
for(int j=0;j
System.out.print(nums[i][j]);
}
}

方式二:静态初始化

1.声明并初始化

数据类型[][] 数组名={{},{},{}};

数据类型[][] 数组名=new 数据类型[][]{{},{},{}};

2.使用(打印、求和、最值)

for(int i=0;i
for(int j=0;j
System.out.print(nums[i][j]);
}
}