更改数组的值

时间:2013-06-10 22:56:18

标签: java

我无法检查我的一些Java代码。

我有一个数组:

String[][] myString = new String[3][3];

然后我有一个方法:

public String getString(int x, int y) {

    return myString[x][y];

}

如果我这样做:

String tmp = getString[0][1];
tmp = "Hello";

这会将myString的值0,1更改为“Hello”,还是会将tmp重新指向读取“Hello”的字符串?

5 个答案:

答案 0 :(得分:3)

不,不会。

为变量tmp设置新值不会影响您的数组。如果要更改数组的值,则必须执行

myString[0][1] = "Hello";

或(更好)使用setter。

答案 1 :(得分:2)

在java中,变量名称是对内存中位置的引用。因此:

String tmp = getString(0,1); 
tmp = "Hello";

相当于:

String tmp;//Declares a reference with the name 'tmp'
tmp = getString(0,1); //points 'tmp' to the result from your getter function
tmp = "Hello";//re-points 'tmp' to the string 'Hello'

这不会影响原始字符串多维数组myString

请注意,在Java中,使用Lists的更复杂概念而不是使用原始数组可能更好。 List<List<String>>等同于String[][]但具有更多功能和可移植性。

答案 2 :(得分:1)

它将重新指向String读数“Hello”。重新分配硬编码字符串将分配刚刚创建的新实例。

答案 3 :(得分:0)

使用它来更改数组的值

myString[0][1] = "Hello";

要更改引用的值,请使用此

String tmp = getString[0][1]; //points 'tmp' to a place in your array
tmp = "Hello";//now points 'tmp' to "hello" and this will not effect the array

答案 4 :(得分:0)

在java以及许多其他流行语言中,&#34; =&#34;的左侧。 sign是您为其赋值的那个。右侧是指定值。

VARIABLE = value_to_be_assigned_to_variable