反向打印给定数组 import java.util.*; 课例{ 公共静态int[]反向(int[]ar){ 对于(int i=0;i

反向打印给定数组 import java.util.*; 课例{ 公共静态int[]反向(int[]ar){ 对于(int i=0;i,java,printing,reverse,Java,Printing,Reverse,此代码输出获取:[50,40,30,40,50] 但我想打印给定数组的反面。 我想知道当I=0时,这个输出([50,40,30,40,50])是如何生成的 import java.util.*; class Example{ public static int[] reverse(int[]ar){ for (int i = 0; i < (ar.length); i++) { ar[i]=ar[(ar.length-i-1)

此代码输出获取
[50,40,30,40,50]

但我想打印给定数组的反面。 我想知道当I=0时,这个输出(
[50,40,30,40,50])
是如何生成的

import java.util.*;
class Example{
    public static int[] reverse(int[]ar){
        for (int i = 0; i < (ar.length); i++)
        {
            ar[i]=ar[(ar.length-i-1)];
        }
        return ar;
        }
    public static void main(String args[]){
        int[] xr={10,20,30,40,50};
        System.out.println(Arrays.toString(xr)); 

        int[]y=xr;
        int[]z=reverse(xr);
        System.out.println(Arrays.toString(z));
    }
}
将数组的最后一个元素指定给数组的第一个索引。因此,在您有机会将数组的原始第一个元素分配给最后一个索引之前,它将被覆盖

对于数组前半部分的所有索引都会发生这种情况

如果要就地反转阵列,则需要一些临时变量,并且应在每次迭代中进行交换:

ar[i]=ar[(ar.length-i-1)]
公共静态int[]反向(int[]ar)
{
对于(int i=0;i
当i=0时

import java.util.*;
class Example{
    public static int[] reverse(int[]ar){
        for (int i = 0; i < (ar.length); i++)
        {
            ar[i]=ar[(ar.length-i-1)];
        }
        return ar;
        }
    public static void main(String args[]){
        int[] xr={10,20,30,40,50};
        System.out.println(Arrays.toString(xr)); 

        int[]y=xr;
        int[]z=reverse(xr);
        System.out.println(Arrays.toString(z));
    }
}
将数组的最后一个元素指定给数组的第一个索引。因此,在您有机会将数组的原始第一个元素分配给最后一个索引之前,它将被覆盖

对于数组前半部分的所有索引都会发生这种情况

如果要就地反转阵列,则需要一些临时变量,并且应在每次迭代中进行交换:

ar[i]=ar[(ar.length-i-1)]
公共静态int[]反向(int[]ar)
{
对于(int i=0;i
您正在覆盖开头的元素,并尝试替换它们。您需要一个临时数组/变量。现在,您将数组的第一部分与第二部分重写,这是否回答了您的问题?您将在开始时覆盖元素,并尝试替换它们。您需要一个临时数组/变量。现在,您将数组的第一部分与第二部分重写,这是否回答了您的问题?