一、数组的概述
1、数组的概念
数组是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理。数组简称(多个数据的组合)
2、数组的组成
①、数组名
②、数组的元素(即内部存储的多个元素)
③、数组的下标、角标、下角标、索引、index(找到指定数组所用的编号)
④、数组的长度(即数组容器中存储的元素个数)
3、数组的特点
①、数组中的元素再内存中是依次紧密排序的,有序的
②、数组属于引用类型的变量,数组的元素,可以是基本数据类型,也可以是引用数据类型
③、当数组初始化完成后,其长度便确定了,不可以再进行更改
④、创建数组对象会在内存空间中开辟一整块“连续的空间”,占据空间的大小取决于数组的长度和数组中的元素类型
二、一维数组
1、一维数组的使用
//声明数组
double[] prices;
//数组的初始化
//静态初始化:数组变量的赋值与数组元素的赋值同时进行
prices = new double[]{20,32,42,64,21};
//创建并声明数组
double[] prices = new double[]{20,32,42,64,21};
double[] prices = {20,32,42,64,21};
//动态初始化:数组变量的赋值与数组元素的赋值分开赋值
String[] foods = new String[2];
foods[0] = "宫保鸡丁";
foods[1] = "麻婆豆腐";
//调用数组的元素
System.out.println(prices[0]);
System.out.println(prices[5]); //数组越界,报异常ArrayIndexOutOfBoundsException
//查看数组的长度
System.out.println(prices.length);
2、一维数组元素的默认初始化值
//整形数组元素的默认初始化值
int[] arr1 = new int[4];
System.out.println(arr1[0]);
//浮点型数组元素的默认初始化值
float[] arr2 = new float[4];
System.out.println(arr2[0]);
//字符型数组元素的默认初始值
//char类型数组的默认值是空格('/u0000')
char[] arr3 = new char[4];
System.out.println(arr3[0]);
//boolean型数组元素的默认初始化值
boolean[] arr4 = new boolean[4];
System.out.println(arr4[0]);
//引用数据类型数组的默认初始化值
String[] arr5 = new String[5];
System.out.println(arr5[0]);
结果如图所示:
总结:
整形数组元素的默认初始化值:0
浮点型数组元素的默认初始化值:0.0
字符型数组元素的默认初始值:0或’\u0000’
boolean型数组元素的默认初始化值:false
引用数据类型数组的默认初始化值;null
三、二维数组
1、二维数组的使用
//1、数组的声明和初始化
//静态初始化:数组变量的赋值和数组元素的赋值同时进行
int[] arr1 = new int[]{1,2,3};
int[][] arr2 = new int[][]{{1,2,3},{4,5},{6,7,8,9}};
//动态初始化1:数组变量的赋值和数组元素的赋值分开进行
String[][] arr3 = new String[3][4];
//动态初始化2:
double[][] arr4 = new double[3][];
//2、数组元素的调用
//针对于arr2来说,外层元素{1,2,3}、{4,5}、{6,7,8,9},外层元素1,2,3,4,5,6,7,8,9
//调用内层元素
System.out.println(arr2[0][0]); //1
System.out.println(arr2[2][1]); //7
//调用外层元素
System.out.println(arr2[0]); //[I@1b6d3586
//3、数组的长度
System.out.println(arr2.length); //3
System.out.println(arr2[0].length); //3
System.out.println(arr2[1].length); //2
System.out.println(arr2[2].length); //4
2、二维数组元素的默认初始化值
动态初始化方式1:(比如:int[][] arr = new int[3][4])
//整形数组元素的默认初始化值
int[][] arr1 = new int[3][1];
//外层元素的默认值:
System.out.println(arr1[0]);
System.out.println(arr1[2]);
//内层元素的默认值
System.out.println(arr1[0][0]); //0
//浮点型数组元素的默认初始化值
double[][] arr2 = new double[3][1];
//外层元素的默认值:
System.out.println(arr2[0]);
System.out.println(arr2[2]);
//内层元素的默认值
System.out.println(arr2[0][0]); //0
//boolean型数组元素的默认初始化值
boolean[][] arr3 = new boolean[2][1];
//外层元素的默认值:
System.out.println(arr3[0]);
//内层元素的默认值
System.out.println(arr3[0][0]); //false
//引用数据类型数组的默认初始化值
String[][] arr4 = new String[4][3];
//外层元素的默认值:
System.out.println(arr4[0]);
//内层元素的默认值
System.out.println(arr4[0][0]); //null
运行结果如下:
总结:
①、外层元素:默认存储地址值
②、内层元素:整形数组元素的默认初始化值:0
浮点型数组元素的默认初始化值:0.0
字符型数组元素的默认初始值:0或’\u0000’
boolean型数组元素的默认初始化值:false
引用数据类型数组的默认初始化值;null
动态初始化方式2:(比如:int[][] arr = new int[3][])
int[][] arr1 = new int[4][];
//外层元素默认值
System.out.println(arr1[0]); //null
//内层元素默认值
//System.out.println(arr1[0][0]); //报错
String[][] arr2 = new String[4][];
//外层元素默认值
System.out.println(arr2[0]); //null
//内层元素默认值
//System.out.println(arr2[0][0]); //报错
...
总结:
①、外层元素:默认存储null
②、内层元素:不存在,报错