这里有一些代码:
public static int[] code = new int[95];
//main method, array is populated with other methods, etc...
checkOrientation(code);
public static void checkOrientation(int[]code) {
if (code[4] != 0) {
System.out.println("Upside down!");
for (int i = 4; i < code.length-6; ++i) {
if (code[i] == 1) {
code[i] = 0;
} else {
code[i] = 1;
}
}
}
}
我想知道如何传递该全局数组并对其进行修改。因此,目标是代码可重用性,我可以将任何数组传递给此方法并使其工作。
也许我需要让它返回一个数组并将其分配给一个新数组?我不想制作更多阵列,我的代码已经因各种突变的阵列副本而变得有点臃肿。
另外:暂时远离ArrayLists,所以我不打算使用它们。
任何建议都将受到赞赏:)
澄清:
这段代码正在做的是翻转位......所以如果数组元素[5]是1,它会将数组元素[5]更改为0,反之亦然。所以,我希望将它保留在同一个数组中,因为它不会改变大小,我不再需要原始数组。
答案 0 :(得分:1)
void run()
{
int[] arr = {1, 2, 3, 4, 5};
twiddle(arr);
for (int i : arr)
{
System.out.println(i);
}
}
static void twiddle(int[] toBeTwiddled)
{
toBeTwiddled[2] = 10;
}
调用run()
打印:
1
2
10
4
5
您是否尝试过代码?它看起来应该完全符合您的要求。
答案 1 :(得分:1)
您在这里做的是使用具有相同名称的函数参数遮蔽您的全局变量code
。在您的函数中,code
将引用传递的参数,而不是全局变量。由于变量具有全局范围,因此您无需将其作为参数传递给函数。