Skip to content

数组

数组简介

数组就是将多个相同类型数据按一定顺序排列而成的集合。

数组的特点:

  • 数组中的元素初始化时都是有默认值的,如整型为0,浮点型为0.0等;
  • 数组一经创建,其大小(长度)就不可再变;
  • 要访问数组中的某个元素,需要使用索引,索引从0开始;

数组的声明方式:

  • 静态初始化:手动指定数组元素,系统会根据元素个数计算出数组长度;
  • 动态初始化:手动指定数组长度,由系统给出默认值进行初始化值;

一维数组

静态初始化

静态初始化,就是在定义数组的同时将其赋值。

java
int[] arr = new int[]{1, 2, 3, 4};
// 简写
int[] arr = {1, 2, 3, 4};

动态初始化

动态初始化,就是先声明数组的长度,然后再对其分配初始值。

java
int[] arr = new int[4];
arr[0] = 1;
arr[1] = 2;

数组默认值

数组的默认值,也可以理解为 基本数据类型的默认值,就是当声明动态数组的时候,如果不为数组赋值,数组中元素的默认值是什么。

类型默认值
byte0
short0
int0
long0
float0.0
double0.0
Stringnull
booleanfalse
char0 或 \u0000

二维数组

静态初始化

java
int[][] arr = new int[][]{{1, 2, 3}, {4, 5, 6}};

动态初始化

二维数组有两种动态初始化的方式:

  • 明确指定行和列的长度
  • 只指定行的长度,列的长度由初始化时自动确认
java
// 3行2列
int[][] arr = new int[3][2];
arr = new int[][]{{1, 2}, {3, 4}, {5, 6}};

// 3行,列的长度不固定
int[][] arr = new int[3][];
arr = new int[][]{{1}, {1, 2}, {1, 2, 3}};

数组遍历

for循环

java
int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

for (int i = 0; i < arr.length; i++) {
  System.out.print(arr[i]);
}

增强for循环

java
int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9};

for (int item : arr) {
  System.out.print(item);
}

二者区别

  1. 标准 for 循环是通过计数器来进行遍历,我们可以很清楚的得知每个元素对应的索引位置;
  2. 增强 for 循环则是直接访问数组中的元素值,而不关心每个元素对应的索引位置;

Arrays扩展方法

Arrays 工具类位于 java.util.Arrays 包下,它提供了许多方法,用于快速实现数组的一些操作。

Arrays.equals()

Arrays.equals() 方法用于比较两个数组内的元素值是否相等,== 运算符用于比较两个数组的地址值是否相等。

java
int[] arr1 = new int[]{1, 2, 3, 4};
int[] arr2 = new int[]{1, 2, 3, 4};

var res = arr1 == arr2; // false
var res1 = Arrays.equals(arr1, arr2); // true

Arrays.toString()

toString() 方法用于将数组转为字符串类型,然后输出。

java
var res3 = Arrays.toString(arr1); // [1, 2, 3, 4]

Arrays.fill()

fill() 方法用于填充数组的元素。

java
// 将数组的所有元素全部填充为 10
Arrays.fill(arr1, 10);
System.out.println(Arrays.toString(arr1)); // [10, 10, 10, 10]

Arrays.sort()

sort() 方法用于将一个数组快速进行排序。

java
var arr3 = new int[]{8, 5, 20, 200, 339, 0};
Arrays.sort(arr3);
System.out.println(Arrays.toString(arr3)); // [0, 5, 8, 20, 200, 339]

Arrays.binarySearch()

binarySearch() 方法用于快速查找指定元素在数组中的索引,若找到指定元素,则返回其索引,若没找到,则返回一个负数。

提示

使用 binarySearch() 方法查找的数组,必须是经过排序之后的

js
var arr3 = new int[]{8, 5, 20, 200, 339, 0};
Arrays.sort(arr3);
System.out.println(Arrays.binarySearch(arr3, 5)); // 1

Released under the MIT License.