在循环中声明多个java数组

时间:2015-01-04 18:03:53

标签: java arrays loops dynamic multidimensional-array

大家好,感谢您提前帮助这不是真正的代码,这只是我想要达到的想法

for (int i = 1, i< some number ; i ++ )

float  [][] sts + i = new float[9][9];

这个想法是让二维数组的动态名称在循环中初始化

STS1 STS2 STS3 。 。 。 。

3 个答案:

答案 0 :(得分:2)

对于你的问题,根据i的值顺序命名,ArrayList可以完成工作,因为你可以迭代它。

但是,一种更通用的方法,使您能够通过某些String名称访问数组(即使这是随机的,而不是像您的情况那样是顺序的)将使用Map<String, float[][]>,其中键{{1 } String是您为数组指定的名称。

Map

然后按Map<String, float[][]> myMap = new HashMap<String, float[][]>(); for(int i = 0; i < someNumber; ++i) { myMap.put("sts" + i, new float[9][9]); }

访问每个数组

答案 1 :(得分:1)

如果在循环中创建每个二维数组,则变量(如sts1)将仅对循环本地。因此在循环之后变量超出范围(但我认为你想在循环之后使用它们,这就是你想要不同名称的原因)。因此,要使用创建的变量,必须使用数组。如果使用数组,命名问题就会停止。

ArrayList<float[][]> l = new ArrayList<float[][]>();

for(int i = 0; i < someNumber; ++i)
{
    l.add(new float[9][9]);
}

答案 2 :(得分:0)

您无法在Java中动态创建变量名称。就这样做

float[][][] sts = new float[someNumber][9][9];

然后,您可以使用sts[0]sts[1]来使用sts1sts2等。