Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 赋值运算符有问题_Java_Android_Arrays - Fatal编程技术网

Java 赋值运算符有问题

Java 赋值运算符有问题,java,android,arrays,Java,Android,Arrays,嗨,我正在用android中的AI做一个棋盘游戏 我遇到了一个对我来说毫无意义的情况 代码: for(int y=0;y

嗨,我正在用android中的AI做一个棋盘游戏

我遇到了一个对我来说毫无意义的情况

代码:

for(int y=0;y
当我使virtualBoard等于mBoard时,我只是将一个数组分配给另一个数组,但是为什么日志会不同呢?怎么可能呢

    virtualBoard = mBoard;  // int arrays
    virtualBoard[x] = nextMove(counter);
在第一个赋值中,您没有创建数组的副本。而是数组引用的副本

因此,您的
virtualBoard
引用了与
mBoard
相同的数组。因此,您使用任何
引用对
数组
所做的任何更改都将反映在其他
引用

在第一个赋值中,您没有创建数组的副本。而是数组引用的副本

因此,您的
virtualBoard
引用了与
mBoard
相同的数组。因此,您使用任何
引用对
数组
所做的任何更改都将反映在其他
引用

当我使virtualBoard等于mBoard时,我只需将一个数组分配给另一个数组

否,您将
mBoard
的值分配给
virtualBoard
。这些变量的值不是数组,而是引用。因此,在该赋值之后,
mBoard
virtualBoard
的值是对同一数组的引用。然后在后续语句中更改该数组的内容

有点像这样的情况:

  • 我有一张写着我家地址的纸
  • 我拿了一份那张纸给弗雷德
  • 弗雷德走到纸上的地址,把前门漆成绿色
  • 当我到家时,我看到我的前门是绿色的
当我使virtualBoard等于mBoard时,我只需将一个数组分配给另一个数组

否,您将
mBoard
的值分配给
virtualBoard
。这些变量的值不是数组,而是引用。因此,在该赋值之后,
mBoard
virtualBoard
的值是对同一数组的引用。然后在后续语句中更改该数组的内容

有点像这样的情况:

  • 我有一张写着我家地址的纸
  • 我拿了一份那张纸给弗雷德
  • 弗雷德走到纸上的地址,把前门漆成绿色
  • 当我到家时,我看到我的前门是绿色的

如果阵列不同,为什么日志不会不同?如果阵列不同,为什么日志不会不同?非常感谢!我把数组和基元类型搞砸了:(非常感谢!我把数组和基元类型搞砸了:(
    virtualBoard = mBoard;  // int arrays
    virtualBoard[x] = nextMove(counter);