目录
一、数组的概述
1、定义
数组(Array)是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理
2、数组相关概念
-
数组名
-
元素
-
索引
-
长度:元素的个数
3、数组的特点
数组是有序排列的
数组本身属于引用数据类型,但是数组的元素既可以是基本数据类型,也可以是引用数据类型
创建数组对象会在内存中开辟一整块连续的空间,而数组名引用的是这块连续空间的首地址
数组的长度一旦确定,就不能更改
4、数组的分类
一般分为一维数组、二维数组。。。。。。
二、一维数组的使用
1、一维数组的声明和初始化
//静态初始化:数组的声明和数组元素赋值操作同时进行
int[] ids = new int[]{
1001,1002,1003};
//动态初始化:数组的声明和数组元素赋值操作分开进行
String[] names = new String[3];
2、如何调用数组指定位置的元素
数组通过索引的方式调用指定位置元素,可以进行赋值或者查看操作。
数组的索引从 0 开始,到数组长度 - 1 为止
在使用索引时,我们经常会碰到数组越界异常,报错信息为 java.lang.ArrayIndexOutOfBoundsException
String[] names = new String[3];
names[0] = "jak";
names[1] = "ros";
names[2] = "jack";
name[3] = "tom"; //java.lang.ArrayIndexOutOfBoundsException
3、如何获得数组的长度
通过数组的属性 length
String name = new String[5];
name.length()
输出5
4、如何遍历数组
-
for循环遍历
int[] ids = new int[10]; for(int i = 0;i < ids.length;i++){ System.out.println(ids[i]); }
-
增强for循环遍历
int[] ids = new int[10]; for(int id : ids){ System.out.println(id); }
5、数组元素的默认初始化值
默认初始化就是没有给数组显式的赋值,但是JVM会给数组的每个元素默认的赋初值
- 数组元素是整型 0
- 数组元素是浮点型 0.0
- 数组元素是char型 0的ASCII值
- 数组元素是Boolean型 false
- 数组元素是引用数据类型 null
三、二维数组的使用
其实世界上本没有二维数组,只是一维数组的元素是一维数组,我们习惯称呼该一维数组为二维数组
1、二维数组的声明和初始化
//静态初始化
int[][] arr1 = new int[][]{
{
1,2,3},{
2,3},{
3,4,5}};
//动态初始化1
int[][] arr2 = new int[3][2];
//动态初始化2
int[][] arr3 = new int[3][];
2、如何调用数组指定位置的元素
int[][] arr = new int[3][];
arr[1][1]; //java.lang.NullPointerException 报错,空指针异常
3、获取数组长度
int[][] arr1 = new int[][]{
{
1,2,3},{
2,3},{
3,4,5}};
System.out.println(arr1.length); //3
System.out.println(arr1[2].length); //3
System.out.println(arr1[1].length); //2
4、如何遍历数组
for(int i = 0;i < arr.length;i++){
for(int j = 0;j < arr[i].length;j++){
System.out.print(arr[i][j])
}
System.out.println(); //换行
}
5、数组元素的默认初始化值
首先我们规定几个概念
int[][] arr = new int[3][4];
//外层元素
arr[1];
arr[2];
//内层元素
arr[1][1];
arr[1][2];
int[][] arr = new int[2][3];
外层元素的默认初始化值:地址值
内层元素的默认初始化值:与一维数组初始化情况相同
int[][] arr = new int[2][];
外层元素的默认初始化值:null
内层元素的默认初始化值:不能调用,否则空指针异常