链式数组值

时间:2015-09-22 23:24:13

标签: java arrays methods

我创建了一个名为rowSwitching的方法来切换数组中两个特定行的数据。但是,当我使用它时,即使我不想存储它,主要的数组值也会发生变化。

这是我的代码;

f(g,h)

我想将数组值保留在main,但由于某种原因,在使用该方法后它会不断变化。

1 个答案:

答案 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