gpt4 book ai didi

java - 在Java中传递数据

转载 作者:行者123 更新时间:2023-12-01 12:23:11 25 4
gpt4 key购买 nike

我正在开发一个java游戏,其中有一棵树保存一些有关游戏的不同数据。树的根节点有一个 int 数组,它“描述”游戏板。现在我想模拟这个游戏可以从原始游戏板前进 X 圈的可能步骤。我通过将游戏板传递给我的 SimulateTurn 函数来完成此操作。

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 正在更改游戏表而不是游戏表的副本?但我怎样才能改变这个呢?我真的不太喜欢 Java,但由于学校作业,我被迫这样做。有任何想法吗?谢谢..

最佳答案

当您想要获得数组的副本时,您必须手动复制它 - 否则,您将原始数组的地址传递给该方法,并且每次更改都会在原始数组中反射(reflect)出来。

要复制数组,请参阅

Arrays.copyOf()

各种形式。

示例

final int[] gameTableCopy = Arrays.copyOf(gameTable, gameTable.length);

关于java - 在Java中传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26524485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com