我必须创建一些变量,例如:“n23、n4、n18 ...”。
因此,它们由两部分组成:字母“n”和我想从我的随机数生成方法中得到的数字(rand())。
像这样的东西:
for(int i = 0; i < 6; i++) {
int n*here_must_be_random_number_got_from_my_method*;
}
有没有可能做类似的事情?
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*);
你不能,但大概你想稍后引用这些,如果你打算引用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 的回答使用地图。