我创建了一个名为rowSwitching的方法来切换数组中两个特定行的数据。但是,当我使用它时,即使我不想存储它,主要的数组值也会发生变化。
这是我的代码;
f(g,h)
我想将数组值保留在main,但由于某种原因,在使用该方法后它会不断变化。
答案 0 :(得分:1)
在Java中,任何Object类型(包括数组)都由 reference 传递。这意味着如果你有一个功能
private void doThings(int[] items) {
items[0] = 10;
}
你称之为:
int[] myList = new int[3] {1,2,3};
doThings(myList);
System.out.println(myList[0]); // Prints '10'
这是因为doThings
接收对列表存储在内存中的位置的引用,并改变存储它的实际内存 - 也在main
中更改它。
您可能需要重新考虑自己的计划或copy the array