Java 数组

数组的定义

  • 概念
    • 同一种类型数据的集合,其实数组是一种容器。
  • 数组的好处
    • 可以自动给数组中的元素从0开始编号,方便操做这些元素,
  • 格式1
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
  • 格式2
元素类型[] 数组名 = new 元素类型[]{元素1, 元素2, ...};
示例:
    int[] arr = new int[]{1, 2, 3, 4, 5};
    int[] arr = {1, 2, 3, 4, 5}; 

数组的内存分配及特点

image-20200608223557500

数组操作常见问题

数组角标越界异常

int[] arr = new int[3];
System.out.println(arr[3]);

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 3

操作数组时,访问到了数组中不存在的角标。

数组空指针异常

int[] arr = new int[3];
arr = null;
System.out.println(arr[2]);

Exception in thread “main” java.lang.NullPointerException

当引用没有如何指针值为null的情况,该引用还在用于操作实体。

数组常见操作

遍历数组

获取 数组中的元素,通常会用遍历。

int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
	System.out.println("i = " + i);
}

数组中的元素用逗号隔开

public static void main(String[] args) {
	int[] arr = {1, 2, 3, 4, 5};
	printArray(arr);
}

public static void printArray(int[] arr) {
	for (int i = 0; i < arr.length; i++) {
		if (i != arr.length - 1) {
			System.out.print(arr[i] + ",");
		} else {
			System.out.print(arr[i]);
		}
	}
}

数组中的数组

格式1:int[][] arr = new int[3][2];

  • 定义了名称为arr的二位数组。
  • 二维数组中有3个一维数组。
  • 每一个一维数组中有2个元素。
  • 一维数组的名称分别为arr[0],arr[1],arr[2]。
  • 给第一个一维数组1角标位赋值为78。写法:arr[0] [1] = 78;

格式2:int[][] arr = new int[3][];

  • 二维数组中有3个一维数组。
  • 每个一维数组都是默认初始值null;
  • 可以对这三个一维数组分别进行初始化。
    • arr[0] = new int[3];
    • arr[1] = new int[1];
    • arr[2] = new int[2];