一、概念
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
Java 语言中提供的数组是用来存储固定大小的多个同类型元素。
你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,…,number99。
本教程将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的代码。
二、声明数组
首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
2.1 格式
dataType[] arrayRefVar; // 首选的方法
或
dataType arrayRefVar[]; // 效果相同,但不是首选方法
注意: 建议使用 dataType[] arrayRefVar 的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自 C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。
2.2 实例
int[] myList; // 首选的方法
或
int myList[]; // 效果相同,但不是首选方法
三、初始化数组
Java语言使用new关键字来初始化数组,数组有两种初始化方式,一种是静态初始化,一种是动态初始化
3.1 格式
// 动态初始化,数组初始值是创建数组用的数据类型的默认值
dataType[] arrayRefVar = new dataType[arraySize];
// 静态初始化,由我们为每一个数组元素设置初始值
dataType[] arrayRefVar = new int[]{value0, value1, ..., valuek}; // 完整格式
dataType[] arrayRefVar = {value0, value1, ..., valuek}; // 简写
上面的语法语句做了两件事:
一、使用 dataType[arraySize] 创建了一个数组。
二、把新创建的数组的地址值赋值给了变量 arrayRefVar。
3.2 实例
public class Main {
public static void main(String[] args) {
// 1、初始化整数数组,长度为5
int[] arr = new int[5];
// 2、给数组赋值
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
// 3、定义一个临时变量,求数组的和
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
// 4、打印结果
System.out.println("sum:" + sum);
}
}
运行结果:
sum:15
四、处理数组
数组的元素类型和数组的大小都是确定的,所以当处理数组元素时候,我们通常使用for循环或者增强for循环。
4.1 for循环
使用for循环来访问数组元素,需要通过下标来访问,适合一些复杂的操作,如:交换元素,判断大小值...
public class Main {
public static void main(String[] args) {
// 1、初始化数组
int[] arr = new int[]{1, 2, 3};
// 2、打印数组
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
4.2 增强for循环
JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者 增强for 循环,它能在不使用下标的情况下遍历数组
public class Main {
public static void main(String[] args) {
// 1、初始化数组
int[] arr = new int[]{1, 2, 3};
// 2、打印数组
for (int num : arr) {
System.out.print(num + " ");
}
}
}
五、多维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组
5.1 格式
// 动态初始化,数组初始值是创建数组用的数据类型的默认值
dataType[][] arrayRefVar = new dataType[arraySize][arraySize];
// 静态初始化,由我们为每一个数组元素设置初始值
dataType[] arrayRefVar = new int[][]{{value0, value1, ..., valuek},{value0, value1, ..., valuek}}; // 完整格式
dataType[] arrayRefVar = {{value0, value1, ..., valuek},{value0, value1, ..., valuek}}; // 简写
5.2 实例
看到这可能会有点懵,建议将这段代码复制下来自己运行,步步分解代码,如果有问题的同学,可以在评论区中留言
public class Main {
public static void main(String[] args) {
// 动态初始化
// int[][] arr = new int[3][3];
// 初始化二维数组
int[][] arr = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 打印二维数组的元素
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
}
}
}