【Java】——Java实现数组元素反转的两种方法

devtools/2024/12/23 8:48:23/

        在编程中,我们经常会遇到需要对数组元素进行反转的需求。例如,给定一个整数数组arr = {1, 2, 3, 4, 5},我们需要将其反转为{5, 4, 3, 2, 1}。下面我们将介绍两种实现数组元素反转的方法。

方法一:遍历数组一半的长度进行元素互换

        这种方法的基本思路是遍历数组的前半部分,将每个元素与其对应的后半部分的元素进行交换。具体实现如下:

java">/*** ClassName:IntelliJ IDEA* Description:实现数组元素的反转** @Author zyjstart* @Create:2024/8/23 9:53*/
public class Test {public static void main(String[] args) {// 定义一个一维数组int arr[]= new int[]{1,2,3,4,5,6,7,8,9};// 打印反转前的数组System.out.print("反转之前:");for (int i=0;i<arr.length;i++){System.out.print(arr[i] + "\t");}System.out.println();// 通过遍历数组一半的长度,实现头尾元素的互换,头元素下标 ”i“ 应尾元素下标 ”arr.length-1-i“// 使用临时变量temp进行交换for (int i=0;i<arr.length / 2;i++){int temp = arr[i];arr[i] = arr[arr.length-1-i];arr[arr.length-1-i] = temp;}// 遍历数组输出结果System.out.print("反转之后:");for (int i=0;i<arr.length;i++){System.out.print(arr[i] + "\t");}}
}

方法二:使用双指针法进行元素互换

        这种方法的基本思路是定义两个指针,一个指向数组的头部,另一个指向数组的尾部。然后,我们不断地将这两个指针所指向的元素进行交换,直到这两个指针相遇或者交叉。具体实现如下:

java">/*** ClassName:IntelliJ IDEA* Description:实现数组元素的反转** @Author zyjstart* @Create:2024/8/23 9:53*/
public class Test {public static void main(String[] args) {// 定义一个一维数组int arr[]= new int[]{1,2,3,4,5};// 打印反转前的数组System.out.print("反转之前:");for (int i=0;i<arr.length;i++){System.out.print(arr[i] + "\t");}System.out.println();// 定义两个指针,一个指向头元素的左指针left,一个指向尾元素的右指针right// 循环遍历,left向右移动,left++     right向左移动,right--// 停止条件,left < rightfor (int left = 0,right = arr.length - 1; left < right; left++,right--) {// 首尾互换int temp = arr[left];arr[left] = arr[right];arr[right] = temp;}// 遍历数组输出结果System.out.print("反转之后:");for (int i=0;i<arr.length;i++){System.out.print(arr[i] + "\t");}}
}

 运行结果如下:

        以上就是两种实现数组元素反转的方法。在实际编程过程中,可以根据具体需求和场景选择合适的方法。希望本文能帮助你更好地理解如何在Java中实现数组元素的反转。


http://www.ppmy.cn/devtools/99038.html

相关文章

足底筋膜炎专用药

足底筋膜炎专用药“古顺*敷堂筋膜*贴”通过其独特的药效和用法&#xff0c;能够针对足底筋膜炎进行有效治疗&#xff0c;缓解患者疼痛和不适感&#xff0c;促进炎症消退和肌肉恢复。长时间站立、行走或进行高强度的跑步、跳跃等活动&#xff0c;会使足底筋膜受到持续的牵拉和压…

C++ TinyWebServer项目总结(9. I/O 复用)

I/O 复用使得程序能够同时监听多个文件描述符&#xff0c;从而提高程序的性能。I/O 复用本身是阻塞的。Linux 下实现 I/O 复用的系统调用主要有 select、poll 和 epoll。 select 系统调用 select API select系统调用&#xff1a;在一段指定时间内&#xff0c;监听用户感兴趣…

docker使用的一些坑

docker使用的一些坑 1、Centos7安全Selinux禁止了一些安全权限&#xff0c;导致mysql和mariadb在进行挂载/var/lib/mysql时&#xff0c;容器无法启动&#xff0c;三个解决方案 &#xff08;1&#xff09;在docker run中加入 –privilegedtrue 给容器加上特定权限 如原命令 d…

网络工程师学习笔记——数据通信

学习网络的基础就是数通&#xff0c;首先得了解数据在网络上是如何传输&#xff0c;以及在传输过程中是使用什么方式进行传输&#xff0c;以及是如何到达接受方和如何解压和加密的等等。 数字编码技术 有基本编码&#xff08;单极性码&#xff0c;极性码&#xff0c;双极性码…

Kotlin学习-01创建kotlin学习环境

安装idea https://www.jetbrains.com/zh-cn/ 创建项目 选择kotlin 修改Main.kt fun main() {print("Hello World!") }运行

单例模式详细

文章目录 单例模式介绍八种方式1、饿汉式&#xff08;静态常量&#xff09;2、饿汉式&#xff08;静态代码块&#xff09;3、懒汉式&#xff08;线程不安全&#xff09;4、懒汉式&#xff08;线程安全&#xff0c;同步方法&#xff09;5、懒汉式&#xff08;线程不安全&#xf…

SpringBoot教程(二十四) | SpringBoot集成AOP实现日志记录

SpringBoot教程&#xff08;二十四&#xff09; | SpringBoot集成AOP实现日志记录 &#xff08;一&#xff09;AOP 概要1. 什么是 AOP &#xff1f;2. 为什么要用 AOP&#xff1f;3. AOP一般用来干什么&#xff1f;4. AOP 的核心概念 &#xff08;二&#xff09;Spring AOP1. 简…

通过roles实现lamp以及其实例

通过 roles 实现 lamp 需定制三个⻆⾊ : httpd,mysql,php 第 1 步 : 创建 roles ⽬录及⽂件 , 并确认⽬录结构 master# cd /etc/ansible/roles/ master# mkdir -p {httpd,mysql,php}/{files,tasks,handlers,templates,v ars,meta} master# touch {httpd,mysql,php}/{tasks,h…