• Java从入门到精通-数组(二)


    4.数组的基本操作

    数组的基本操作包括遍历数组、填充替换数组元素、对数组进行排序、复制数组以及查询数组中的元素。

    • 4.1 遍历数组

    遍历数组是访问数组中所有元素的过程,通常使用循环完成。

    使用 for 循环遍历数组:
    1. int[] numbers = {1, 2, 3, 4, 5};
    2. for (int i = 0; i < numbers.length; i++) {
    3. System.out.println(numbers[i]);
    4. }
    使用增强型 for-each 循环遍历数组:
    1. int[] numbers = {1, 2, 3, 4, 5};
    2. for (int num : numbers) {
    3. System.out.println(num);
    4. }

    • 4.2 填充替换数组元素

    可以通过循环来填充和替换数组中的元素。

    1. int[] numbers = new int[5];
    2. for (int i = 0; i < numbers.length; i++) {
    3. numbers[i] = i + 1; // 填充数组元素
    4. }

    • 4.3 对数组进行排序

    Java提供了多种排序算法来对数组进行排序,例如冒泡排序、选择排序和快速排序。以下是一个使用Arrays类的示例来对数组进行排序:

    1. int[] numbers = {5, 2, 9, 1, 5};
    2. Arrays.sort(numbers); // 对数组进行升序排序

    • 4.4 复制数组

    可以使用不同的方法来复制一个数组到另一个数组。以下是使用System.arraycopy的示例:

    1. int[] sourceArray = {1, 2, 3};
    2. int[] targetArray = new int[sourceArray.length];
    3. System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);

    • 4.5查询数组

    可以使用循环遍历数组来查找特定元素,或者使用搜索算法来查找元素的位置。以下是一个线性搜索的示例:

    1. int[] numbers = {10, 20, 30, 40, 50};
    2. int target = 30;
    3. int index = -1;
    4. for (int i = 0; i < numbers.length; i++) {
    5. if (numbers[i] == target) {
    6. index = i; // 找到目标元素的索引
    7. break;
    8. }
    9. }
    10. if (index != -1) {
    11. System.out.println("目标元素 " + target + " 在索引 " + index + " 处找到。");
    12. } else {
    13. System.out.println("目标元素 " + target + " 未找到。");
    14. }

    5.数组排列算法

    数组排列算法是一种用于按照特定顺序重新排列数组元素的算法。在Java中,有多种排序算法可供选择,每种算法都有其优点和适用场景。

    • 5.1 冒泡排序

    冒泡排序是一种基本的排序算法,它重复地遍历数组,比较相邻的两个元素,并根据需要交换它们,直到整个数组有序。冒泡排序适用于小型数据集。

    1. public static void bubbleSort(int[] arr) {
    2. int n = arr.length;
    3. boolean swapped;
    4. do {
    5. swapped = false;
    6. for (int i = 0; i < n - 1; i++) {
    7. if (arr[i] > arr[i + 1]) {
    8. // 交换 arr[i] 和 arr[i+1] 的位置
    9. int temp = arr[i];
    10. arr[i] = arr[i + 1];
    11. arr[i + 1] = temp;
    12. swapped = true;
    13. }
    14. }
    15. } while (swapped);
    16. }

    • 5.2 直接选择排序

    直接选择排序是一种简单的排序算法,它在未排序的部分中选择最小(或最大)的元素,并将其放在已排序部分的末尾。直接选择排序适用于小型数据集。

    1. public static void selectionSort(int[] arr) {
    2. int n = arr.length;
    3. for (int i = 0; i < n - 1; i++) {
    4. int minIndex = i;
    5. for (int j = i + 1; j < n; j++) {
    6. if (arr[j] < arr[minIndex]) {
    7. minIndex = j;
    8. }
    9. }
    10. // 交换 arr[i] 和 arr[minIndex] 的位置
    11. int temp = arr[i];
    12. arr[i] = arr[minIndex];
    13. arr[minIndex] = temp;
    14. }
    15. }

    • 5.3 反转排序

    反转排序是一种简单的排序算法,它将数组元素的顺序反转,即将第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换,以此类推。

    1. public static void reverseSort(int[] arr) {
    2. int n = arr.length;
    3. for (int i = 0; i < n / 2; i++) {
    4. // 交换 arr[i] 和 arr[n-i-1] 的位置
    5. int temp = arr[i];
    6. arr[i] = arr[n - i - 1];
    7. arr[n - i - 1] = temp;
    8. }
    9. }

    6.实践与练习

    • 6.1. 数组概述

    • 练习1: 创建一个整数数组,存储您喜欢的5个数字,并编写代码打印出这些数字。

    • 2. 一维数组

    • 练习2: 创建一个字符串数组,包含一些水果的名称,然后使用循环遍历并打印数组中的水果名称。
    • 练习3: 编写一个程序,接受用户输入的一组数字,然后计算它们的平均值。

    • 3. 二维数组

    • 练习4: 创建一个二维整数数组来表示一个九宫格数独游戏的初始状态,并编写代码打印出数独的初始状态。
    • 练习5: 编写一个程序,生成一个3x3的随机迷宫地图,其中包括起点、终点和墙壁。

    • 4. 数组的基本操作

    • 练习6: 编写一个程序,接受用户输入的一组数字,并查找其中的最大值和最小值。
    • 练习7: 创建两个整数数组,分别表示两个向量的坐标,然后编写代码计算这两个向量的点积(内积)。

    • 5. 数组排列算法

    • 练习8: 使用冒泡排序或选择排序对一个整数数组进行升序排列,并打印排序后的数组。
    • 练习9: 编写一个程序,生成一个包含10个随机整数的数组,并使用快速排序算法对其进行排序。

    • 6. 综合实践

    • 练习10: 创建一个简单的任务管理程序,使用数组来存储任务的描述和状态(未完成/已完成),并提供选项来添加、查看和标记任务的状态。

    (以上是十个小问题,下次文章回答)

  • 相关阅读:
    探究Presto SQL引擎(4)-统计计数
    正则表达式:Regular Expression
    vue配置@路径
    Oracle中序列
    地质灾害防治可视化智慧管理系统平台
    EM@常用三角函数图象性质(中学部分)
    Android13---下拉状态栏添加阅读模式(MTK平台)
    Csdn文章编写参考案例
    【LVS实战】03 LVS负载均衡-DR模式实验
    【并发编程】并发工具类
  • 原文地址:https://blog.csdn.net/m0_53918860/article/details/132773358