Java 如何在没有循环或创建新数组的情况下反转数组

Java 如何在没有循环或创建新数组的情况下反转数组,java,arrays,reverse,Java,Arrays,Reverse,任务 我需要完成这个程序,以便数组中的数字以相反的顺序出现。这并不意味着我只需要按相反的顺序显示元素;实际上,我将把数组中的最后一个元素移动到数组的第一个元素中,以此类推。我无法使用循环或创建新数组 输出应该是 class ReverseArrayElements1 { public static void main ( String[] args ) { int[] values = {10, 20, 30, 40}; int temp; System.o

任务 我需要完成这个程序,以便数组中的数字以相反的顺序出现。这并不意味着我只需要按相反的顺序显示元素;实际上,我将把数组中的最后一个元素移动到数组的第一个元素中,以此类推。我无法使用循环或创建新数组

输出应该是

class ReverseArrayElements1
{
  public static void main ( String[] args )
  {
    int[] values = {10, 20, 30, 40}; 
    int temp;

     System.out.println( "Original Array: " + values[0] + "\n" + values[1] +
                         "\n" + values[2] + "\n" + values[3]   );

    // reverse the order of the numbers in the array



    System.out.println( "Reversed Array: " + values[0] + "\n" + values[1] + "\n"
                         + values[2] + "\n" + values[3] );
   }
}

如果您使用的是Java 8:

Original Array: 10 20 30 40 
Reversed Array: 40 30 20 10 

您可以使用吗?不,我们不允许在不使用迭代或递归的情况下使用递归-这似乎是一项不可能完成的任务。而且,这似乎是一个群策群力的家庭作业问题,几乎没有表现出什么努力,所以我投票决定结束。看:这是老师告诉我的。我和你一样迷路了。我甚至不知道从哪里开始。你能像temp=arr[0]那样手动交换它们吗;arr[0]=arr[3];arr[3]=tmp;交换边界值,然后temp=arr[1];arr[1]=arr[2];arr[2]=tmp;交换中间值。不能使用其他库。这违背了我试图回答别人给我的问题的目的。既然你在问题中没有具体说明外部库的限制,我相信我已经尽力了。在这种情况下,这听起来像是一个练习递归的作业——鉴于这个问题没有显示您之前的尝试,我投票赞成关闭这个问题。我们的老师说要重新定义arraylist。
import java.util.stream.IntStream;

// stuff

int[] reversed = IntStream.range(0,values.length).map(i -> values[values.length-i-1]).toArray();