gpt4 book ai didi

java - 交换后如何返回数组?

转载 作者:行者123 更新时间:2023-12-01 22:44:35 25 4
gpt4 key购买 nike

所以我的主要方法应该有一个包含 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 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);

}

}

这是 randArray 传递给的 swap 方法:

public static int[] swap (int[] randArray, int i, int j)
{
int temp = randArray[i];
randArray[i] = randArray[j];
randArray[j] = temp;

return randArray;
}

我的问题是,当数组传回时,它没有改变

最佳答案

不需要返回任何内容(假设您将方法签名更改为返回void) - 数组的元素已就地交换。

例如:

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);

关于java - 交换后如何返回数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25557043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com