当前位置: 首页 > news >正文

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

4.数组的基本操作

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

• 4.1 遍历数组

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

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

• 4.2 填充替换数组元素

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

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

• 4.3 对数组进行排序

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

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

• 4.4 复制数组

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

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

• 4.5查询数组

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

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

5.数组排列算法

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

• 5.1 冒泡排序

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

public static void bubbleSort(int[] arr) {int n = arr.length;boolean swapped;do {swapped = false;for (int i = 0; i < n - 1; i++) {if (arr[i] > arr[i + 1]) {// 交换 arr[i] 和 arr[i+1] 的位置int temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;swapped = true;}}} while (swapped);
}

• 5.2 直接选择排序

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

public static void selectionSort(int[] arr) {int n = arr.length;for (int i = 0; i < n - 1; i++) {int minIndex = i;for (int j = i + 1; j < n; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}// 交换 arr[i] 和 arr[minIndex] 的位置int temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;}
}

• 5.3 反转排序

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

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

6.实践与练习

• 6.1. 数组概述

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

• 2. 一维数组

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

• 3. 二维数组

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

• 4. 数组的基本操作

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

• 5. 数组排列算法

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

• 6. 综合实践

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

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

http://www.lryc.cn/news/160099.html

相关文章:

  • 深入剖析HTTP和HTTPS代理在爬虫中的应用价值
  • SQL语句分类及编写规范
  • 02-zookeeper分布式锁案例
  • 【Spring传播机制底层原理】
  • python通过tkinter制作词云图工具
  • Java-钉钉订阅事件
  • 【DataV/echarts】vue中使用,修改地图和鼠标点击部分的背景色
  • 系统设计类题目汇总四
  • 【C++心愿便利店】No.5---构造函数和析构函数
  • 微软研究院团队获得首届AI药物研发算法大赛总冠军
  • redis实战篇之导入黑马点评项目
  • 【C++】详解红黑树并模拟实现
  • Matlab图像处理-最大类间方差阈值选择法(Otsu)
  • Spring Cloud(Finchley版本)系列教程(三) 服务消费者(Feign)
  • AI图片生成 discord 使用midjourney
  • gitlab 点击Integrations出现500错误
  • 【2023高教社杯】A题 定日镜场的优化设计 问题分析及数学模型
  • rac异常hang死故障分析(sskgxpsnd2)
  • 2023.9.7 关于 TCP / IP 的基本认知
  • Python 图片处理
  • 信道估计 | 信道
  • 腾讯发布超千亿参数规模的混元大模型;深度学习与音乐分析与生成课程介绍
  • [html]当网站搭建、维护的时候,你会放个什么界面?
  • javaee spring aop 的五种通知方式
  • 【Redis】3、Redis主从复制、哨兵、集群
  • vcpkg方式安装zlmediakit
  • 【大数据】基于 Flink CDC 高效构建入湖通道
  • 微信小程序开发---网络数据请求
  • vulkan学习路径
  • NIFI使用InvokeHTTP发送http请求