目录
一、什么是数组?
- 数组是相同类型数据的有序集合。
- 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
- 其中,每一个数组元素可以通过一个下标来访问他们。
二、数组的声明和创建
- 必须首先声明数组变量,才能在程序中使用数组。
int[] nums;//首选方法
int nums[];
- java语言中使用new关键字来创建数组
int[] nums = new int[10];
//可以存放十个int类型的数据
- 数组的元素是通过索引访问的,数组索引从0开始。
- 获取数组长度
nums.length
三、初始化和内存分析
(一)三种初始化方式
1.静态初始化
int[] a = {1,2,3};
man[] mans
2.动态初始化
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
3.默认初始化
数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
(二)内存分析
四、数组的四个基本特点
- 其长度是固定的。数组一但被创建,它的大小就不可以改变。
- 其元素类型必须是相同的类型,不允许出现混合类型。
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量是引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身在堆中。
五、数组边界
- 下标的合法区间:[0,length-1],如果越界就会报错。
int[] a = new int[10];
System.out.println(a[10]);
- java.lang.ArrayIndexOutOfBoundsException数组下标越界
六、数组的使用
1、For-Each循环
int[] a = {1,2,3,4,5,6,7,8,9,10};
for (int arrays:a){
System.out.print(arrays+"\t");
}
2、数组做方法入参
public static void printArrays(int[] arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i]+"\t");
}
}
3、数组做返回值
反转数组:
public static int[] reverse(int[] arrays){
int[] result = new int[arrays.length];
for (int i = 0; i < arrays.length;i++){
result[i] = arrays[arrays.length-1-i];
}
for (int a:result){
System.out.print(a+"\t");
}
return result;
}
七、多维数组
- 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其中每一个数组都是一个一维数组。
- 二维数组
int[][] a = new int[2][5];
- 解析:以上数组可以看成是一个两行五列的数组
- 多维数组的使用
public static void main(String[] args) {
int[][] arrays = new int[4][2];
int num = 0;
for (int i = 0; i < arrays.length; i++) {
for (int j = 0; j < arrays[i].length; j++) {
num++;
arrays[i][j] = num;
}
}
for(int i = 0;i < arrays.length;i++){
for (int j = 0; j < arrays[i].length; j++) {
System.out.print(arrays[i][j]+"\t");
}
System.out.println();
}
}