Java中关于数组交换反转,逆序输出四种做法,让你一文直接上手四种做法

简介: Java中关于数组交换反转,逆序输出四种做法,让你一文直接上手四种做法

数组反转和逆序输出的思路:

      1、数组反转的思路是:用0号元素和数组最后一个元素进行互换,然后分别继续互换到start(前一个元素下标)大于end(后一个元素下标)的时候停止互换,打印反转后的数组,这个思路可以应用到逆序输出

      2、逆序输出直接从后面倒过来输出即可


            做法1:

   int [] arr={11,22,33,44,55};

        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] 相当于从后面开始访问回来的下标
            arr[arr.length-1-i]=temp;
        }


        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

            做法2:

      int [] arr1={11,22,33,44,55};

        for (int start = 0,end=arr1.length-1; start <end; start++,end--) {   //进行数组元素互换,当start(下标)大于end(下标)的时停止互换元素

            int temp =arr1[start];
            arr1[start]=arr1[end];
            arr1[end]=temp;

        }


        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]);
        }

            做法3(数组交换的第三种做法(其实本质也是第二种做法)比较好理解):

      int [] arr2={11,22,33,44,55};

        int start=0;
        int end=arr2.length-1;
        while(start<=end){
            int temp =arr2[start];
            arr2[start]=arr2[end];
            arr2[end]=temp;

            start++;
            end--;

        }

        for (int i = 0; i < arr2.length; i++) {
            System.out.println(arr2[i]);
        }

            做法4(直接逆序输出,从后面倒过来输出,可以提高一点点效率):

   int [] arr3={11,22,33,44,55};

        for (int i=arr3.length-1;i>=0;i--){
            System.out.println(arr3[i]);
        }

作者:KJ.JK

本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

目录
相关文章
|
3月前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
4月前
|
存储 缓存 Java
Java数组全解析:一维、多维与内存模型
本文深入解析Java数组的内存布局与操作技巧,涵盖一维及多维数组的声明、初始化、内存模型,以及数组常见陷阱和性能优化。通过图文结合的方式帮助开发者彻底理解数组本质,并提供Arrays工具类的实用方法与面试高频问题解析,助你掌握数组核心知识,避免常见错误。
|
5月前
|
存储 Java 索引
java 数组
在 Java 中,数组是一种数据结构,用于存储多个相同类型的数据元素。数组的大小一旦创建后就不能改变,因此它是固定长度的。Java 数组是一种 对象,即使它存储的值是基本类型(如 int、double 等),它也是一个对象引用。
154 0
|
7月前
|
存储 人工智能 Java
打乱数组内容引发的问题( Java)
本文介绍了两种实现数组随机打乱的方法,并深入探讨了Java中原始数据类型与对象类型的差异。方法一通过自定义随机数交换数组元素位置,方法二借助`Collections.shuffle()`函数完成数组打乱。同时,文章详细解析了`int`和`Integer`的区别,包括声明方式、内存占用、初始化以及对象特性等,并讲解了自动装箱与拆箱的功能,帮助读者更好地理解Java的基础知识。
134 0
|
2月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
185 1
|
2月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
208 1
|
3月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
161 0
|
3月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
260 16