我必须创建一些变量,例如:“n23,n4,n18 ......” 因此,它们由两部分组成:字母“n”和我希望从我的方法中获得随机数的数字(rand())。
这样的事情:
for(int i = 0; i < 6; i++) {
int n*here_must_be_random_number_got_from_my_method*;
}
是否可以做类似的事情?
答案 0 :(得分:1)
Java不是脚本语言。
所有标识符,即所有包名,类型名,方法名,字段名和变量,必须在编译时指定。因此,无法根据运行时计算的值来连接变量名称。
BUT!
你甚至不需要。只需使用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*);
答案 1 :(得分:0)
你不能,但可能你想在以后引用,如果你打算引用n123
,那么你可以希望将它们称为{{1相反。如果是这种情况,那么你可以使用java数组,也许是这样的:
n[123]
请注意,java不会执行稀疏数组,因此数组的大小必须与最大的随机数一样大。如果我们这么大,请考虑按照Jan的回答使用地图。