数组类型
定义
在 Java 中,数组是一种用于存储固定大小的同类型元素的容器。
Java数组特点:
- 数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false;
- 数组一旦创建后,大小就不可改变。
一维数组
声明:
数据类型[] 数组名; // 推荐写法
数据类型 数组名[]; // 也可以这样写
初始化:
int[] nums = new int[5]; // 动态初始化,5为数组长度
int[] nums2 = new int[]{1, 2, 3}; // 静态初始化
int[] nums3 = {4, 5, 6}; // 简写形式
二维数组
声明:
数据类型[][] 数组名; // 推荐写法
数据类型 数组名[][]; // 也可以这样写
数据类型[] 数组名[]; // 另一种写法
初始化:
// 动态初始化:
数组名 = new 数据类型[行数][列数];
// 静态初始化:
数组名 = new 数据类型[][]{
{元素1, 元素2, ...},
{元素1, 元素2, ...}
};
// 简写形式:
数据类型[][] 数组名 = {
{元素1, 元素2},
{元素3, 元素4}
};
// 示例:
int[][] matrix = new int[2][3]; // 动态初始化
int[][] matrix2 = {{1, 2, 3}, {4, 5, 6}}; // 简写形式
数组操作
访问数组元素
数组元素通过索引访问,索引从 0 开始:
public class Main {
public static void main(String[] args) {
int[] nums = {1, 2, 3};
System.out.println(nums[0]); // 输出 1
nums[1] = 10; // 修改第二个元素
System.out.println(nums[1]); // 输出 10
}
}
遍历数组
方式一:for循环访问索引遍历
public class Main {
public static void main(String[] args) {
int[] ns = { 1, 4, 9, 16, 25 };
for (int i=0; i<ns.length; i++) {
int n = ns[i];
System.out.println(n);
}
}
}
方式二:for…each循环直接访问元素遍历
public class Main {
public static void main(String[] args) {
int[] ns = { 1, 4, 9, 16, 25 };
for (int n : ns) {
System.out.println(n);
}
}
}
⚠️在for (int n : ns)
循环中,变量n直接拿到ns数组的元素,而不是索引。
打印数组内容
方式一:for…each遍历打印
int[] ns = { 1, 1, 2, 3, 5, 8 };
for (int n : ns) {
System.out.print(n + ", ");
}
方式二:Arrays.toString()
方法
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ns = { 1, 1, 2, 3, 5, 8 };
System.out.println(Arrays.toString(ns));
}
}
数组排序
冒泡排序
// 冒泡排序
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
// 排序前:
System.out.println(Arrays.toString(ns));
for (int i = 0; i < ns.length - 1; i++) {
for (int j = 0; j < ns.length - i - 1; j++) {
if (ns[j] > ns[j+1]) {
// 交换ns[j]和ns[j+1]:
int tmp = ns[j];
ns[j] = ns[j+1];
ns[j+1] = tmp;
}
}
}
// 排序后:
System.out.println(Arrays.toString(ns));
}
}
Arrays.sort()
// 排序
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
Arrays.sort(ns);
System.out.println(Arrays.toString(ns));
}
}