数组###

数组的概念

作用:存储一组数据类型相同的数据的容器

特点:长度不可变

使用步骤

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();
}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值