Java—数 组
数组就是一个容器,用来存一批同种类型的数据。
一、静态初始化数组
1.1 定义方式
语法:
- 完整格式:数据类型 [ ] 数组名 = new 数据类型 []{ 元素 1 ,元素 2 ,元素3… };
- 简化格式:数据类型 [ ] 数组名 = { 元素 1 ,元素 2 ,元素 3 ,… };
tips:
- “数据类型 [ ] 数组名”也可写成 “数据类型 数组名 [ ] ” 。
- 什么类型的数组只能存放什么类型的数据。
示例:
public class test {public static void main(String[] args) {//完整格式定义数组int[] arr1=new int[]{1,2,3,4};char[] arr2=new char[]{'a','b','c','d','e'}; //注意字符用单引号,字符串用双引号//简单格式定义数组double[] arr3={3.14,4.45,6.68,2.1,3.5};}}
}
tips(仅限Intellij IDEA):
1. 在写代码的时候,我们先输入“sout”,然后回车,可以快速得到输出语句,如下图所示:
2.定义main函数也是同理,我们先输入“main”,然后回车,可以快速得到main函数框架。
1.2 数组的访问
数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型。
我们访问数组中的元素可以通过数组下标索引的方式,语法:数组名[索引],数组的下标索引是从0开始的,到数组长度-1结束。访问数组时,下标索引不能超过数组最大索引,否则会出 bug ,出现索引越界的异常提示。
我们可以通过数组的方法,获取数组的长度,语法:数组名.length。
示例:
public class test {public static void main(String[] args) {//完整格式定义数组int[] arr1=new int[]{1,2,3,4,5};char[] arr2=new char[]{'a','b','c','d','e'}; //注意字符用单引号,字符串用双引号//简单格式定义数组double[] arr3={3.14,4.45,6.68,2.1,3.5};//打印测试System.out.println(arr1); //输出的是数组在内存中的地址System.out.println(arr1[0]);System.out.println(arr1[4]);System.out.println(arr1.length);}
}
输出:
[I@4eec7777
1
5
5
1.3 数组的遍历
数组的遍历一般结合for循环或者while循环,Java的循环和C语言的循环类似,本专栏不再赘述,详细可看C-循环语句_程序的内外循环-CSDN博客。
示例:
public class test {public static void main(String[] args) {//完整格式定义数组int[] arr1=new int[]{1,2,3,4,5};char[] arr2=new char[]{'a','b','c','d','e'}; //注意字符用单引号,字符串用双引号//简单格式定义数组double[] arr3={3.14,4.45,6.68,2.1,3.5};//for循环遍历数组for(int i=0;i<arr2.length;i++){System.out.println(arr2[i]);}//while循环遍历数组int j =0;while(j<arr3.length){System.out.println(arr3[j]);j++;}}
}
输出:
a
b
c
d
e
3.14
4.45
6.68
2.1
3.5
二、动态初始化数组
2.1 定义方式
数组的动态初始化,即定义数组时先不存入具体的元素值,只确定数组存储的数据类型和数组的长度。但访问方式和遍历方式与静态初始化数组相同。
语法:数据类型 [ ] 数组名 = new 数据类型 [ 长度 ];
示例:
public class test {public static void main(String[] args) { //先动态定义int[] arr4=new int[4];//后赋值arr4[0]=23;arr4[1]=21;arr4[2]=37;arr4[3]=34;//遍历for(int n=0;n<arr4.length;n++){System.out.println(arr4[n]);}}
}
输出:
23
21
37
34
2.2 动态初始化数组元素默认值
代码验证:
public class test {public static void main(String[] args) {int[] arr1=new int[3];boolean[] arr2=new boolean[6];System.out.println(arr1[2]);System.out.println(arr2[2]);}
}
输出:
0
false