数组
什么是数组
数组是一组地址连续、长度固定的具有相同类型的数据的集合,通过数组下标我们可以指定数字中的每一个元素
数组的定义和内存分配
在Java中通过(类型名[] 数组名)或(类型名 数组名[])申明一个数组,其中(类型名[] 数组名)方式声明数组是Java特有也是推荐使用的
数组是一个特殊的对象,所以在使用前需要在内存中开辟一块内存空间用来存放数据,否则会抛出空指针异常,可以通过(new)关键字给数组分配内存,也可以使用通过在静态初始化(见下)时隐式的给数组分配与初始化元素个数相同的数组空间
定义了一个数组后可以通过(数组名[下标])的方式访问数组中的数据,通过(数组名[下标]=数据)为数组赋值
数组的赋值和访问
数组的赋值有两种:静态初始化、动态初始化
- 静态初始化:通过(类型[] 数组名={元素,元素...})或(类型[] 数组名= new 类型[]{元素,元素...})的方式为数组初始化,数组将自动分配一个与元素个数相同的内存空间
int[] arr = {1,2,3,4,5};
int[] arr = new int[]{1,2,3,4,5};
- 动态初始化:通过(类型[] 数组名=new 类型[大小])为数组分配内存,通过(数组名[下标]=数据)为数组初始化赋值
int[] arr = new int[3];
arr[0] = 1
二维数组
定义方法
直接添加元素
int[][] arr={{2},{3},{4}};
先定义数组长度再添加元素
int[] arr=new int[2][2]; arr[0][1]=1; arr[1][1]=1;
数组的注意事项
- 数组的类型可以是基本数据类型和引用类型
- 数组的长度不可变
- 数组的属性(数组名.length)获取的是数组的容量,而不是数组中存储元素的个数
- 数组的下标从0开始,最后一个元素的下标是(length-1)
- 数组是引用数据类型
- 数组的长度是固定的,也就是说可以存储固定个数的数据
- 数组中的元素的类型必须一致,也就是说数组中存储的多个数据的数据类型一致
public static void main(String[] args) { int[] arr1={1,2,3};//定义一个int类型数组arr1,静态初始化数组,其数组长度为3 int[] arr2=new int[3];//定义一个长度为3的int类型数组arr2 int类型的数组其元素默认值是0 int[] arr3=new int[]{4,5,6};//定义一个int类型数组arr2,并静态初始化数组,其数组长度为3 //(数组名.lenth)获取数组的容量大小 System.out.println("arr1的长度为 : "+arr1.length+" - ["+arr1[0]+", "+arr1[1]+", "+arr1[2]+"]"); System.out.println("arr1的长度为 : "+arr2.length+" - ["+arr2[0]+", "+arr2[1]+", "+arr2[2]+"]"); System.out.println("arr1的长度为 : "+arr3.length+" - ["+arr3[0]+", "+arr3[1]+", "+arr3[2]+"]"); }