如果需要存储大量的数据,例如如果需要读取100个数,那么就需要定义100个变量,显然重复写100次代码,是没有太大意义的,如何解决这个问题?
Java语言提供了数组(array)的数据结构,是一个容器可以存储相同数据类型的元素,可以将100个数存储到数组中。
概念 |
同一种类型数据的集合。其实数组就是一个容器。 |
数组的好处 |
可以自动给数组中的元素从0开始编号,方便操作这些元素。 |
格式1: |
元素类型[] 数组名 = new元素类型[元素个数或数组长度]; 示例:int[] arr = new int[5]; |
格式2: |
元素类型[] 数组名 = new元素类型[]{元素,元素,……}; int[] arr = new int[]{3,5,1,7}; int[] arr = {3,5,1,7}; |
数组是一种单独的数据类型。数据类型分为2大派,分为基本数据类型和引用数据类型。 第二大派是引用数据类型。数组类型 ,[] 中括号就代表数组,就是引用数据类型三种当中的一种。
初始化方式1:不使用运算符new int[ ]arr = { 1, 2, 3, 4, 5 }; int[ ]arr2 =new int[ ] { 1, 2, 3, 4, 5 }; 初始化方式2: int[ ] arr3=new int[3]; arr3[0]=1; arr3[1]=5; arr3[2]=6; |
int[] arr; arr={1,2,3,4,5}; |
注意:给数组分配空间时,必须指定数据类型以及数组能够存储的元素个数来确定数组大小。创建数组之后不能修改数组的大小和类型。可以使用length属性获取数组的大小。
数组遍历
数组中有一个属性可以获取到数组中元素的个数,也就是数组的长度.数组名.length
public static void main(String[] args) { int[] x = { 1, 2, 3 }; for (int y = 0; y < x.length; y++) { System.out.println(x[y]); // System.out.println("x["+y+"]="+x[y]); 打印效果 x[0]=1; } // 那么这就是数组的第一个常见操作.遍历 } |
数组的常见异常
一、数组角标越界异常:,注意:数组的角标从0开始。 /下标 /索引
public static void main(String[] args) { int[] x = { 1, 2, 3 }; System.out.println(x[3]); //java.lang.ArrayIndexOutOfBoundsException } |
内存结构图示:
二 、空指针异常:
int[] arr=new int[2];
arr[1]=10;
System.out.println(arr[1]);
输出:10
int[] arr=new int[2];
arr=null;
arr[1]=10;
System.out.println(arr[1]);
空指针异常:java.lang.NullPointerException
public static void main(String[] args) { int[] x = { 1, 2, 3 }; x = null; System.out.println(x[1]); // java.lang.NullPointerException } |
什么时候使用数组:
当元素较多时为了方便操作这些数,会先进行临时存储,所使用的容器就是数组。
特点:
数组长度是固定的。