Java实现数组翻转的实现代码

1.Java提供了一些工具包实现了数组翻转,这里就不在赘述了   reverse。。。

2.还可以通过倒叙循环,重新new一个数组进行赋值,例如

private static String[] reverseArray(String[] Array) {
    String[] new_array = new String[Array.length];
    for (int i = 0; i < Array.length; i++) {
      // 反转后数组的第一个元素等于源数组的最后一个元素:
      new_array[i] = Array[Array.length - i - 1];
    }
    return new_array;
  }

3.但是是效率可不可以更高一些呢,还有在同一个数组上如何进行翻转

例如数组:a,b,c,d,e,f,g

返回结果:g,f,e,d,c,b,a

分析:数组长度为 7

对应数组标记,数组从0开始,也就是0,1,2,3,4,5,6

当长度为单数时,中间位不需要互换,也就是d(4)不需要互换,也就是7/2取整结果3,3+1不需要互换,也就是length/2 +1不需要互换

当长度为双数时,不需要考虑,全部进行互换

总结:需要互换的数据为0~(length/2 -1) 与 length/2 ~ (length -1)

设置循环系统i=0,阈值为lenth/2 - 1,同时倒叙获取后面的参数进行互换。

public static void main(String[] args) {
		String[] num = {"1", "2", "3", "4", "5", "6"};

		for (int i = 0; i <= num.length / 2 - 1; i++) {
			String temp1 = num[i];
			String temp2 = num[num.length - i - 1];
			num[i] = temp2;
			num[num.length - i - 1] = temp1;
		}
		System.out.println(Arrays.asList(num).toString());
	}

暂时只想到只想到这些,同时隐身知识点,java中的值传递与引用传递的区别。。。。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现数组反转翻转的方法实例

    数组翻转的方法(java实现),数组翻转,就是将数组倒置,例如原数组为:{"a","b","c","d"},那么翻转后的数组为{"d","c","b","a"}. [方法一]使用集合个工具类: Collections.reverse(ArrayList) 将数组进行反转: import java.util.ArrayList;import java

  • Java实现数组翻转的实现代码

    1.Java提供了一些工具包实现了数组翻转,这里就不在赘述了   reverse... 2.还可以通过倒叙循环,重新new一个数组进行赋值,例如 private static String[] reverseArray(String[] Array) { String[] new_array = new String[Array.length]; for (int i = 0; i < Array.length; i++) { // 反转后数组的第一个元素等于源数组的最后一个元素: new_ar

  • Java map存放数组并取出值代码详解

    获取map的值主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的值,另一类则是通过map.entrySet()方法来取值,两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的值的时候需要通过key来查询value,后者则直接将key和value的键值对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见map.keySet()和map.EntrySet()的比较,接下

  • java 删除数组元素与删除重复数组元素的代码

    删除数组借助于list 复制代码 代码如下: private String[] removePaths(String path, String[] srcpaths) {  List<String> list = new ArrayList<String>();  int k = srcpaths.length;//原字符串长度  int i=0;  while(i<k){   if(!srcpaths[i].equals(path)){    list.add(srcpat

  • java整数与byte数组的转换实现代码

    java整数与byte数组的转换实现代码            这里对java中整数与byte数组的转换进行了实现,平时的项目中很少用的到,但是特定需求的时候还是需要的,这里就记录下,亲测可用, 实现代码: public class NumberUtil { /** * int整数转换为4字节的byte数组 * * @param i * 整数 * @return byte数组 */ public static byte[] intToByte4(int i) { byte[] targets =

  • Java编程数组中最大子矩阵简便解法实现代码

    本文研究的主要是Java编程数组中最大子矩阵的相关内容,具体介绍如下. 遇到一个好人,可以改变一生:遇到一本好书,又何尝不是呢? 最近在翻阅 左程云先生的<程序员代码面试指南–IT名企算法与数据结构题目最优解>时就非常的有感悟.建议有这方面爱好的博友,也去观摩观摩. 书中讲解的基于栈的数组的最大矩阵的算法很经典,但是博主能力有限,没能彻底的领悟该算法的精髓,但是根据这个思想,博主想出了一种简易的应对该类问题的算法,现概述如下. 核心思想 先来看一张图吧,我们就可以大致的理解了. 如图,每一个轮

  • Java后缀数组之求sa数组的实例代码

    后缀数组的一些基本概念请自行百度,简单来说后缀数组就是一个字符串所有后缀大小排序后的一个集合,然后我们根据后缀数组的一些性质就可以实现各种需求. public class MySuffixArrayTest { public char[] suffix;//原始字符串 public int n;//字符串长度 public int[] rank;// Suffix[i]在所有后缀中的排名 public int[] sa;// 满足Suffix[SA[1]] < Suffix[SA[2]] --

  • JAVA中数组插入与删除指定元素的实例代码

    今天学了Java的数组,写了数组的插入和删除,本人小白,写给不会的小白看,大神请忽略,有错请大家指出来: /** 给数组指定位置数组的插入 */ import java.util.*; public class ArrayInsert{ public static void main(String []args){ System.out.println("请用键盘输入5个数:"); int [] array =new int[10]; Scanner sc=new Scanner(Sy

  • Java反转数组输出实例代码

    反转数组输出 前言:此方法来自B站UP主 问题:将数字1,2,3,4,5 反向输出 5,4,3,2,1 输入参数:1,2,3,4,5 代码示例 public static void main(String[] args) { //参数 int[] array = {1,2,3,4,5}; //调用方法 int[] a = a(array); //调用结果输出 System.err.println(a); } public static int[] a(int[] array){ //声明一个动态

  • java中用数组实现环形队列的示例代码

    本篇文章主要讲述了使用数组实现环形队列的思路以及具体代码 一.队列是什么 我们先来看下百科的解释: 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的端称为队头. 总结起来两点: 1.一种线性表 2.添加操作只能在表尾,删除操作在表头(先进先出) 二.实现队列的思路 1.初始化一个空队列 初始化一个大小固定的数组,并将头指针,尾指针都指向下表为0的位置,但其

随机推荐