基本上,我想将变量命名为字母“f”,将变量命名为变量“i”。但是,我不知道该怎么做。
int n = 2;
for(int i = 0; i < generations; i++){
creature[] f;
fi = new creature[n];
n = 2*n;
}
正如您在上面所看到的,它表示“fi”。我知道这不行;这只是为了证明我的意思。例如,第一个arraylist是“f0”,第二个是“f1”,第三个是“f2”,依此类推。 任何帮助使这项工作将不胜感激。谢谢!
答案 0 :(得分:4)
你可以拥有int数组,你可以使用如下所示。你的方式在java中是不可能的
creature[][] f = new creature[size][];
f[i] = new creature[n];
答案 1 :(得分: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];
答案 2 :(得分:0)
即使您可以使用反射来按名称获取变量,但这不是干净的也不是有效的。
按名称或号码访问值的标准方法是:
Creature[] f = new Creature[generations];
的数组:您可以访问f[i]
Map<int, Creature> = new HashMap<>();
的地图:您可以访问f.get(i)
请注意,我将creature
更改为Creature
:Java最佳做法是使用大写字母启动类名。