一.引入
数组的概念:是一种容器,可以同时存放多个数据值
数组的特点:
1.数组是一种引用数据类型
2.数组中的多个数据类型必须统一
3.数组的长度在程序运行期间不可改变
二.数组的初始化
数组的初始化;
1.动态初始化(指定长度)
2.静态初始化(指定内容)
【1】动态初始化数组
格式;
数据类型[] 数组名称 = new 数据类型[数组长度];
解析:左侧数据类型也就是数组中保存的数据,全都是统一的什么类型
左侧的中括号;代表一个数组
左侧的数组名称;给数组取一个名称
右侧的new:代表创建数组的动作
右侧的数据类型;与左侧的数据类型相同
右侧中括号的长度;也就是数组中可以保存多少个数据
public class demo01_Array {
public static void main(String[] args) {
//创建一个数组,可以存300个int数据
int[] array_int = new int[300];
//创建一个数组,可以存10个double数据
double[] array_double = new double[10];
//创建一个数组,可以存10个double数据'
String[] array_String = new String[5];
}
}
【2】静态初始化
基本格式:
数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,...};
public class demo02_Array {
public static void main(String[] args) {
//直接创建一个数组,里面装的全都是int数字,具体为:5,15,25
int[] array_int = new int[]{5,15,25};
//直接创建一个数组,里面装的全都是字符串,具体为:Hello,World,Java
String[] array_String = new String[]{"Hello","World","Java"};
}
}
省略的静态初始化
省略格式
数据类型[] 数组名称 = {元素1,元素2,...};
public class demo03_Array {
public static void main(String[] args) {
//使用了省略格式的静态初始化
int[] array_int = {5,15,27};
}
}
注意事项;
1.静态初始化没有指定长度,但是仍然会自动推算得到长度
2.静态初始化格式可以拆分为两个步骤
3.动态初始化也可以拆分为两个步骤
4.静态初始化一旦使用省略格式,就不能拆分为两个步骤
public class demo03_Array {
public static void main(String[] args) {
//静态初始化格式可以拆分为两个步骤
int[] array1;
array1 = new int[]{10,20,30};
//动态初始化也可以拆分为两个步骤
int[] array2;
array2 = new int[10];
}
}
三.访问数据元素进行获取
直接打印数组名称,得到的是数组对应的内存地址哈希值
访问数组元素的格式:
数组名称[索引值]
public class demo04_ArrayUse {
public static void main(String[] args) {
int[] array_int = {10,20,30};
//直接打印
System.out.println(array_int);//[I@1b6d3586
System.out.println(array_int[0]);//10
System.out.println(array_int[1]);//20
System.out.println(array_int[2]);//30
//赋值给其他变量
int num = array_int[1];
System.out.println("num的值为"+num);
}
}
[I@1b6d3586
10
20
30
num的值为20
Process finished with exit code 0
四.访问数组元素进行赋值
使用动态初始化数组时,其中的元素将会自动拥有一个默认值,规则如下
1.整数型 默认为0
2.浮点型 默认为0.0
3.字符类型 默认为‘\u0000’
4.布尔类型 默认为false
5.引用类型 默认为null
注意事项;
静态初始化也有默认值的过程,只不过系统马上自动将默认值替换成了大括号中的具体数值
public class demo05_ArrayUse {
public static void main(String[] args) {
int[] array_int = new int[3];
System.out.println(array_int);//内存地址
System.out.println(array_int[0]);
System.out.println(array_int[1]);
System.out.println(array_int[2]);
System.out.println("===========");
//将数据123赋值交给数组array的1号元素
array_int[1] = 123;
System.out.println(array_int[0]);
System.out.println(array_int[1]);
System.out.println(array_int[2]);
}
[I@1b6d3586
0
0
0
===========
0
123
0
Process finished with exit code 0