0

我必须创建一些变量,例如:“n23、n4、n18 ...”。
因此,它们由两部分组成:字母“n”和我想从我的随机数生成方法中得到的数字(rand())。

像这样的东西:

for(int i = 0; i < 6; i++) {
    int n*here_must_be_random_number_got_from_my_method*;
}

有没有可能做类似的事情?

4

2 回答 2

1

Java 不是脚本语言。

所有标识符,即所有包名、类型名、方法名、字段名和变量,必须在编译时指定。因此,无法根据运行时计算的值连接变量名称。

但!

你甚至不需要。只需使用java.util.Map. 而不是做

int n*here_must_be_random_number_got_from_my_method* = *whatever_it_is_you_want_to_put_here*;

你可以改为

Map<Integer, Integer> myMap = new HashMap<>();

一次,然后将值放入地图中,如下所示:

myMap.put(*here_must_be_random_number_got_from_my_method*, *whatever_it_is_you_want_to_put_here*);

并像这样取回它:

myMap.get(*here_must_be_random_number_got_from_my_method*);
于 2013-09-11T00:38:35.380 回答
0

你不能,但大概你想稍后引用这些,如果你打算引用n123,那么你希望可以引用它们n[123]。如果是这种情况,那么您可以使用 java 数组,可能是这样的:

private int[] n = new int[999];

void populate() {
    for(int i = 0; i < 6; i++) {
        n[here_must_be_random_number_got_from_my_method] = something;
    }
}

注意java不做稀疏数组,所以你的数组大小需要和最大随机数一样大。如果我们很大,请考虑按照 Jan 的回答使用地图。

于 2013-09-11T00:55:07.343 回答