gpt4 book ai didi

java - 交换二维数组行

转载 作者:行者123 更新时间:2023-11-29 03:22:07 24 4
gpt4 key购买 nike

我使用此代码交换二维数组行(A 和 B):

public static void swapRows(int[][] array, int[] rowA, int[] rowB) {
int[] tempRow;
tempRow = rowA;
rowA = rowB;
rowB = tempRow;
}

但是调用了这个方法,显示出来的数组,完全没有变化!

为什么?

最佳答案

这是因为您正在交换按值传递的引用(我知道,这听起来令人困惑,但这正是 Java 所做的)。当你做这个作业时

rowA = rowB;

更改的效果在您的函数内部是可见的,而不是在函数外部。为了让效果对调用者可见,您需要对 array 对象进行操作。

方法如下:首先,更改 API 以获取索引而不是实际行。然后更改代码以将这些索引使用到二维数组中,如下所示:

public static void swapRows(int[][] array, int rowA, int rowB) {
int[] tempRow = array[rowA];
array[rowA] = array[rowB];
array[rowB] = tempRow;
}

关于java - 交换二维数组行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23019150/

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