我需要帮助编写这段代码,这样我才能反转整数数组并返回它?有人可以帮忙吗?
public class Quesitons {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5, 6, 8};
int[] a = reverseArray(numbers);
System.out.println(a);
}
public static int[] reverseArray(int[] numbers) {
int [] newArray= new int [numbers.length];
int temp;
int left = numbers[0];
int right = numbers.length;
int mid = left+right/2;
for (int i=0; i<mid;i++){
temp = left;
left= right;
right= temp;
right= right -1;
left= left+1;
left= newArray[0];
right=newArray.length-1;
}
return newArray;
}
}
答案 0 :(得分:0)
与编程中的大多数任务一样,最简单的方法是根本不做任何工作。虽然数组没有reverse
方法,但Collections
中有一个反向方法。因此,如果您使用List
而不是数组,则只需拨打yourList.reverse()
即可,所有工作都将为您完成。
如果您想要或需要使用数组,这里的方法将返回传递给它的int[]
的反向:
public static int[] reverseArray(int[] input)
{
int[] reversedArray = new int[input.length];
int j = 0;
for (int i = input.length - 1; i >= 0; i--)
{
reversedArray[j] = input[i];
j++;
}
return reversedArray;
}
总结一下它的作用:首先,它创建一个与输入数组长度相同的新数组。然后,在从输入数组的最后一个元素移动到第一个元素的for循环中,它将每个元素从第一个到最后一个分配给新数组的索引。因此,输入数组的最后一个索引被分配给新数组的第一个索引,而倒数第二个索引则分配给第二个索引,等等。
答案 1 :(得分:0)
试试这个
public static int[] reverseArray(int[] numbers) {
int[] newArray= new int[numbers.length];
int counter = 0 ;
for(int i = numbers.length - 1; i >= 0; i--)
{
newArray[counter] = numbers[i];
counter++;
}
return newArray;
}
这样调用以查看结果:
int[] numbers = {1, 2, 3, 4, 5, 6, 8};
int[] a = reverseArray(numbers);
for(int i = 0; i < a.length; i++)
Console.write(a[i]);
我没有测试过,但确定它应该可以使用。
答案 2 :(得分:0)
一个稍微不同的for
循环来反转数组:
for (int i = numbers.length -1, j = 0; i >= 0; i--, j++)
{
newArray[i] = numbers[j];
}
在for
循环中,您可以声明多个以逗号分隔的变量。唯一的事情是你只能有一个逃避条款(即i >= 0
或j < array.length
)
基本上你正在做的是倒计时反向阵列,同时对原始阵列进行计数。如果你仔细想想,可以相当简单地实现。