数组的概念
作用:存储一组数据类型相同的数据的容器
特点:长度不可变
使用步骤
1,声明
2,创建
动态创建
静态创建
3,使用
数组的声明和赋值
// 声明数组
数据类型[] 数组名;// 初始化数组
数组名 = new 数据类型[大小];// 或者一步完成数组声明和初始化
数据类型[] 数组名 = new 数据类型[大小];
数组的组成
数组由固定数量的元素组成,这些元素的类型必须相同。数组元素可以通过索引访问,索引从0开始,依次递增至数组长度减1。
数组的遍历
遍历数组即逐个访问数组中的每个元素。常用的遍历方式有两种:
for (int i = 0; i < 数组名.length; i++) {
// 访问数组元素:数组名[i]
}
使用增强型 for
循环(也称为 for-each 循环):
for (数据类型 变量名 : 数组名) {
// 访问数组元素:变量名
}
例如,使用增强型 for
循环遍历整型数组:
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
数组的复制
int[] array = {5, 2, 8, 1, 9};
int[] newArray = new int[array.length]; // 创建新数组用于存储复制后的元素
for (int i = 0; i < array.length; i++) {
newArray[i] = array[i]; // 将原数组中的元素逐个复制到新数组中
}// 输出新数组的元素
for (int i = 0; i < newArray.length; i++) {
System.out.println(newArray[i]);
}
数组的查找
int target = 8; // 要查找的目标值
int index = -1; // 初始化索引为-1,表示未找到for (int i = 0; i < array.length; i++) {
if (array[i] == target) {
index = i;
break; // 找到目标值后跳出循环
}
}if (index != -1) {
System.out.println("目标值 " + target + " 的索引位置为 " + index);
} else {
System.out.println("目标值 " + target + " 不存在于数组中");
}
数组的排序
1:使用:
Arrays
类的静态方法sort()
进行排序,该方法使用快速排序实现int[] numbers = {5, 2, 8, 1, 9};
Arrays.sort(numbers); // 对数组进行排序// 输出排序后的数组
for (int num : numbers) {
System.out.println(num);
}
2:冒泡排序int[] array = {5, 2, 8, 1, 9};
int n = array.length;
// 外层循环控制比较的轮数
for (int i = 0; i < n - 1; i++) {
// 内层循环进行相邻元素的比较和交换
for (int j = 0; j < n - i - 1; j++) {
if (array[j] > array[j + 1]) {
// 交换相邻元素
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
二维数组
二维数组是一个由多个一维数组组成的数据结构。它可以被看作是一个表格或者矩阵,其中的每个元素有两个索引来定位。 声明和初始化一个二维数组的语法如下:
数据类型[][] 数组名 = new 数据类型[行数][列数];
列:
int[][] matrix = new int[3][4];
杨辉三角等
数组广泛应用于各种算法和问题中。例如,杨辉三角是一个由数字排列成的三角形,其中每个数是它上方两个数的和。可以通过数组来存储和生成杨辉三角。
int n = 5; // 指定杨辉三角的行数
int[][] triangle = new int[n][];
for (int i = 0; i < n; i++) {
triangle[i] = new int[i + 1];
triangle[i][0] = 1;
triangle[i][i] = 1;for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}// 打印杨辉三角
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(triangle[i][j] + " ");
}
System.out.println();
}