Java 交换数组后如何返回该数组?
所以我有我的主要方法,应该有一个1-20个打印的数组,然后我应该在循环中传递这个数组,每次偶数出现。Java 交换数组后如何返回该数组?,java,arrays,sorting,return,parameter-passing,Java,Arrays,Sorting,Return,Parameter Passing,所以我有我的主要方法,应该有一个1-20个打印的数组,然后我应该在循环中传递这个数组,每次偶数出现。swap方法将用下一个数字切换数组中的偶数。。。所以在数组[1,2,3,4,5,…]中,2和3将切换,4和5将切换 以下是主要方法: public class Lab_01_Tester { public static void main (String[] args) throws FileNotFoundException { PrintWriter writer = new Pri
swap
方法将用下一个数字切换数组中的偶数。。。所以在数组[1,2,3,4,5,…]中,2和3将切换,4和5将切换
以下是主要方法:
public class Lab_01_Tester {
public static void main (String[] args) throws FileNotFoundException
{
PrintWriter writer = new PrintWriter("Lab_01_nums.txt");
int[] randArray = Lab_01_ArrayUtilities.buildIntArray(20, 10, 29);
String randArrayString = Arrays.toString(randArray);
writer.write(randArrayString);
System.out.print(randArrayString);
writer.close();
for (int i = 0; i < randArray.length - 1; i++)
{
if (randArray[i] % 2 == 0)
{
Lab_01_ArrayUtilities.swap (randArray, i, i + 1);
i = i +1;
}
else;
}
System.out.println();
System.out.print(randArrayString);
}
}
我的问题是,当数组传回时,它是不变的您不需要返回任何内容(假设您将方法签名更改为returnvoid
)-数组的元素已被替换到位
例如:
int[] array = { 3, 5, 4 };
swap(array, 0, 2);
System.out.println(array[0]); // 4
System.out.println(array[2]); // 3
这是您的实际问题:
System.out.print(randArrayString);
自从上次打印以来,您没有更改过randArrayString
,所以难怪它打印的是相同的值。您只需在打印前再次添加此行:
randArrayString = Arrays.toString(randArray);
您不需要返回任何内容(假设您将方法签名更改为returnvoid
)-数组的元素已交换到位
例如:
int[] array = { 3, 5, 4 };
swap(array, 0, 2);
System.out.println(array[0]); // 4
System.out.println(array[2]); // 3
这是您的实际问题:
System.out.print(randArrayString);
自从上次打印以来,您没有更改过randArrayString
,所以难怪它打印的是相同的值。您只需在打印前再次添加此行:
randArrayString = Arrays.toString(randArray);
您不需要返回任何内容(假设您将方法签名更改为returnvoid
)-数组的元素已交换到位
例如:
int[] array = { 3, 5, 4 };
swap(array, 0, 2);
System.out.println(array[0]); // 4
System.out.println(array[2]); // 3
这是您的实际问题:
System.out.print(randArrayString);
自从上次打印以来,您没有更改过randArrayString
,所以难怪它打印的是相同的值。您只需在打印前再次添加此行:
randArrayString = Arrays.toString(randArray);
您不需要返回任何内容(假设您将方法签名更改为returnvoid
)-数组的元素已交换到位
例如:
int[] array = { 3, 5, 4 };
swap(array, 0, 2);
System.out.println(array[0]); // 4
System.out.println(array[2]); // 3
这是您的实际问题:
System.out.print(randArrayString);
自从上次打印以来,您没有更改过randArrayString
,所以难怪它打印的是相同的值。您只需在打印前再次添加此行:
randArrayString = Arrays.toString(randArray);
也许是这样,
randArray=Lab\u 01\u arrayuutilities.swap(randArray,i,i+1)代码>?您仔细测试过这个吗?只是快速通读一下,但swap()看起来应该可以工作。是的,不必返回数组。不管怎样,这种方法都会起作用。可能是其他代码有问题,比如else
。可能是这样,randArray=Lab\u 01\u arrayuutilities.swap(randArray,i,i+1)代码>?您仔细测试过这个吗?只是快速通读一下,但swap()看起来应该可以工作。是的,不必返回数组。不管怎样,这种方法都会起作用。可能是其他代码有问题,比如else
。可能是这样,randArray=Lab\u 01\u arrayuutilities.swap(randArray,i,i+1)代码>?您仔细测试过这个吗?只是快速通读一下,但swap()看起来应该可以工作。是的,不必返回数组。不管怎样,这种方法都会起作用。可能是其他代码有问题,比如else
。可能是这样,randArray=Lab\u 01\u arrayuutilities.swap(randArray,i,i+1)代码>?您仔细测试过这个吗?只是快速通读一下,但swap()看起来应该可以工作。是的,不必返回数组。不管怎样,这种方法都会起作用。可能是其他代码有问题,比如else代码>。当我打印完整数组时,虽然没有任何更改。@NikDesai:请参阅我的编辑-您没有打印数组的当前内容。。。你正在打印与你之前打印的相同的字符串。噢,哇。。非常感谢您,刚刚为我节省了几个小时的咒骂:)当我打印完整的数组时,虽然没有任何更改。@NikDesai:查看我的编辑-您没有打印数组的当前内容。。。你正在打印与你之前打印的相同的字符串。噢,哇。。非常感谢您,刚刚为我节省了几个小时的咒骂:)当我打印完整的数组时,虽然没有任何更改。@NikDesai:查看我的编辑-您没有打印数组的当前内容。。。你正在打印与你之前打印的相同的字符串。噢,哇。。非常感谢您,刚刚为我节省了几个小时的咒骂:)当我打印完整的数组时,虽然没有任何更改。@NikDesai:查看我的编辑-您没有打印数组的当前内容。。。你正在打印与你之前打印的相同的字符串。噢,哇。。非常感谢你,刚刚帮我省了几个小时的咒骂:)