0

基本上,我想将变量命名为字母“f”和变量“i”表示的数字。但是,我不知道该怎么做。

int n = 2;
    for(int i = 0; i < generations; i++){
        creature[] f;
        fi = new creature[n];
        n = 2*n;
    }

正如你在上面看到的,它说“fi”。我知道这行不通;这只是为了证明我的意思。例如,第一个数组列表是“f0”,第二个是“f1”,第三个是“f2”,依此类推。任何帮助完成这项工作将不胜感激。谢谢!

4

3 回答 3

4

你可以有 int 数组,你可以像下面这样使用。你的方式在java中是不可能的

   creature[][] f = new creature[size][];
   f[i] = new creature[n];
于 2012-12-30T16:50:38.557 回答
4

阅读您的代码对我没有帮助,但您的描述听起来像是您想使用二维数组:

int n = 2;
Creature[][] f = new Creature[generations][];
for(int i = 0; i < generations; i++){
    f[i] = new Creature[n];
    n = 2*n;
}

你可以像这样使用它:

Creature[] generation0 = f[0];
于 2012-12-30T16:52:57.150 回答
0

即使您可以使用反射来按名称获取变量,但这既不干净也不高效。

按名称或数字访问值的标准方法是:

  • 声明为的数组Creature[] f = new Creature[generations];:您访问f[i]
  • 声明为Map<int, Creature> = new HashMap<>();:您访问的地图f.get(i)

请注意,我更改creatureCreature:Java 最佳实践是以大写字母开头的类名。

于 2012-12-30T16:50:53.823 回答