一、数组的特点
(1)是一种引用类型
(2)多个数据类型的统一,数据集合
(3)数组在程序运行中不可以发生改变
1、数组的初始化:创建数组、赋予默认值
(1)静态数组初始化(指定长度)
格式:数据类型[] 数组名称=new 数据类型[数组长度];
double arrayA=new double[5];
(2)动态数组初始化(指定内容)
格式:数据类型[] 数组名称={...};
注意:(1)静态初始化数组没有指定格式,但可进行推算
(2)静态初始化格式可使用两个步骤:
int[] array1;
array1=;new int[]{....};
注:静态初始化里一旦使用省略格式,就不能拆分成两个步骤。
动态初始化也可拆分为两个步骤:
int[] array2;
array2 =new int[.];
所以,不指定内容用动态初始化格式,指定内容用静态初始化格式
二、访问元素、进行赋值
1、静态初始化
直接打印数组名称,得到的是数组相对应的地址值。
访问数组元素格式 数组名称[索引值]
其中,索引值代表数组中元素的编号,从0开始,一直到数组元素的长度-1为止。
2、动态初始化
使用动态初始化格式的数组时,其中元素自动拥有一个默认值。
int -->0
double-->0.0
字符-->'\u0000'
布尔-->false
引用-->null
赋值-->array[1]=123;*
注:静态初始化也有默认值的过程,只不过系统自动马上将默认值替换成为了大括号中的数值。
三、数组索引越界异常
int[] array={1,2,3};
System.out.println(array[3]);
并不存在三号元素,发生异常。

四、空指针异常
没有定义新数组
int[] array;
system.out.println(array [0]);
就会发生异常
解决:补上new,进行初始化定义
五、获取数组长度
数组在程序运行过程中,长度不可以更改
int[] array1=new int[3];
int[] array2={1,3,2};
int len1=array1.length;
int len2=array2.length;
System.out.println(len1);
System.out.println(len2);
六、数组的遍历
打印数组中的每一个元素
int[] array={1,3,2};
可用for循环
int[] array={1,3,2};
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
七、数组进行传参
数组可以作为方法的参数。当调用方法时,向方法小括号进行传参,传进去的是数组的地址值。
一个方法可有多个参数,但只能有一个返回值。
如果希望有多个结果,可使用一个数组作为返回值类型。
public static void main(String[] args) {
int[] result = calculate(1, 2, 3);
System.out.println("总和"+result[0]);
System.out.println("平均数"+result[1]);
}
public static int[] calculate(int a, int b, int c) {
int sum = a + b + c;
int avg = sum / 3;
int[] array1 = {sum, avg};
return array1;
}
数据类型:int[]
调用:int[] result=calculate(1, 2, 3);
任何数据类型都能作为方法的返回参数类型或返回值类型,数组作为方法的参数,传递进去的是数组的地址。数组作为方法的返回值,返回的也是数组的地址。
八、举例
1、找最大元素
public static void main(String[] args) {
int[] array={1,2,3,4,5};
int max=array[0];
for(int i=1;i<array.length;i++){
if(array[i-1]<array[i]){
max=array[i];
}
}
System.out.println("数组中的最大值为"+max);
}
2、反转

public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
for(int min=0,max=array.length-1;min<max;min++,max--){
int temp=array[min];
array[min]=array[max];
array[max]=temp;
}
for (int i=0;i<array.length;i++){
System.out.println(array[i]);
}
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int length = array.length;
for (int i = 0; i < length; i++) {
int temp =array[i];
array[i] = array[length-1];
array[length-1] = temp;
length--;
if(i>length) break;
}
for (int i=0;i<array.length;i++){
System.out.println(array[i]);
}
}
网友评论