3

我正在为我正在编写的程序做我在下面解释的事情或类似的事情。在我的程序的这一部分之前,我有一个数组,其中包含正在玩游戏的玩家的姓名。

我想创建一个 for 循环,它将根据现有玩家的数量初始化一个新数组,并将该新数组命名为该玩家的名称。

所以你有一个更好的主意:

for (int i = 0; i < nPlayers; i++) {
    String name = playerNames[i];
    int[] name = new int[nCategories];  
}

所以你可以看到我试图根据我存储在不同数组中的东西的名称来分配一个新数组。有没有办法做到这一点?或类似的东西,我认为这可能会更好/更有效?

这是一个Java程序顺便说一句。

谢谢!

4

2 回答 2

3

没有真正干净的方法来创建具有动态名称的变量,就像您尝试做的那样。也许一个不错的选择是拥有一个地图,并在地图中为每个玩家创建一个新的键,玩家的名字作为键,值作为一个新的 Int 数组。

于 2013-02-27T04:38:01.067 回答
3

我想首先指出 Ian 提出了一个有效的观点。如果您希望能够使用字符串动态检索变量,则映射是一个很好的选择。创建一个使用 String 作为键并使用 int[] 数组作为值的映射。然后,您可以使用您的 String 键将 int[] 从地图中调用。

Map<String, int[]> players = new Map<String, int[]>();
String myname = "myname";
int[] myInts = {0,1,2};
players.put(myname, myInts);
int[] intArrayForPlayer = players.get(myname);

但是,使用 Java 的主要优点是它是一种面向对象的语言。您可能需要强烈考虑使用类来实现您的目标。您可以使用类变量创建一个名为 Players 的类,以保存每个 Player 所需的所有数据。然后您可以创建Player myPlayer = new Player();对象并使用它们来保存您的所有信息。

您可以使用数组或 ArrayList 来保存所有播放器对象。

于 2013-02-27T04:45:19.377 回答