用Java传递数据
我正在做一个java游戏,我有一棵树,里面有一些关于游戏的不同数据。树的根注释有一个int数组,用于“描述”游戏板。 现在我想模拟这个游戏可能的步骤,从原来的游戏板到前面的X圈。 我通过将游戏板传递给SimulateTurn函数来实现这一点用Java传递数据,java,Java,我正在做一个java游戏,我有一棵树,里面有一些关于游戏的不同数据。树的根注释有一个int数组,用于“描述”游戏板。 现在我想模拟这个游戏可能的步骤,从原来的游戏板到前面的X圈。 我通过将游戏板传递给SimulateTurn函数来实现这一点 public static AgentStructure SimulateTurn(int index, int[] gameTable) 然后我像这样调用函数: AgentStructure localStruct = new AgentStructur
public static AgentStructure SimulateTurn(int index, int[] gameTable)
然后我像这样调用函数:
AgentStructure localStruct = new AgentStructure();
Tree node = new Tree("Child #"+(i-7), tree);
localStruct = SimulateTurn(i, tree.getAgentStructure().gameTable);
node.setAgentStructure(localStruct);
tree.AddChild(node);
System.out.print("Node created\n");
但这会改变原始游戏表中的数据
treee.getAgentStructure().gameTable
为什么呢?我感觉这是因为函数SimulateTurn传递正在更改gameTable而不是gameTable的副本?但我怎样才能改变这个?
我对Java不是很熟悉,但因为学校的作业,我不得不这么做。
有什么想法吗?
谢谢..当您想要数组的副本时,必须手动复制它-否则,您会将原始数组的地址传递给该方法,并且每次更改都会在原始数组中反映出来 要复制数组,请参阅
Arrays.copyOf()
以各种形式
例子
谢谢你,伙计。我知道这与此有关,但无法找到解决方案。
final int[] gameTableCopy = Arrays.copyOf(gameTable, gameTable.length);