1.数组概念
- 数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
- 数组既可以存储基本数据类型,也可以存储引用数据类型。
2.数组的定义格式
- 格式1: 数据类型[] 数组名; int []a;
- 格式2: 数据类型 数组名[]; int a[];
用第一种方法更好一点,推荐使用第一种方法。
3.数组的初始化
- Java中的数组必须先初始化,然后才能使用。
- 所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
初始化的分类: - 动态初始化: 只指定长度,由系统给出初始化值
- 静态初始化: 给出初始化值,由系统决定长度
注意事项: 这两种方式,只能使用一种,不能进行动静结合
数组初始化格式 - 数据类型[] 数组名 = new 数据类型[数组长度];
- 数组长度其实就是数组中元素的个数。
- 举例: int[] arr = new int[3]; 定义了一个int类型的数组arr,这个数组可以存放3个int类型的值。
- 代码实现
public static void main(String[] args) {
int[] arr=new int[10];
arr[0]=1;
arr[1]=2;
arr[2]=3;
System.out.println(arr[1]);
System.out.println(arr[5]);
}
运行结果:
结论:
如果我们定义了一个数组没有给数组赋初值,那么数组中没有赋值的元素值默认值为0。还要注意在使用数组时,要对数组初始化。
4.数组的内存图
首先我们定义一个Int型的数组,并对它动态初始化。代码如下:
public static void main(String[] args) {
int arr[]=new int[3];
arr[0]=10;
arr[1]=20;
int num=arr[0];
int num2=arr[1];
System.out.println(num);
System.out.println(num2);
}
内存图
栈内存(存局部变量),堆内存(存每个new出来的数据,并为他分配内存地址,以及给数据赋初始化值),方法区(加载.class文件先到方法区),本地方法区(与系统相关),寄存器(CPU使用)。
5.数组的遍历
public static void main(String[] args) {
int arr[]={1,4,5,8,6,9,10,15,520};
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
}
运行结果:
6.数组的一些应用
采用方法调用,获取数组元素的最大值。
代码:
public static void main(String[] args) {
int[] arr=new int[]{10,50,80,150,200,520};
int max1=gtearr(arr);
System.out.println(max1);
}
private static int gtearr(int []arr) {
int max=0;
for (int i = 0; i <= arr.length-1; i++) {
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
运行结果:
结论:
我们在使用数组的过程中要注意数组的长度(length)比数组最后一个元素的角标要大1。
应为数组元素第一个是从0开始排序的。