【发布时间】:2015-04-28 01:27:45
【问题描述】:
如果您有一个 ArrayList(在本例中名为 al),并且您希望将列表的前五个元素作为变量,您可以这样做:
String x1 = al.get(0);
String x2 = al.get(1);
String x3 = al.get(2);
String x4 = al.get(3);
String x5 = al.get(4);
但是,使用 for 循环,有没有一种方法可以代替:
for (int i = 1; i < 6; i++){
String namer = "x" + i.toString();
String [value of String 'namer'] = al.get(i-1);
}
或者有没有更高效的完全不同的方法?
【问题讨论】:
-
如果您将它们放在一个列表中,为什么要将它们作为单独的变量?为什么不在任何你想写
x3的地方写al.get(2)?如果这太冗长,您可以将它们放在一个数组而不是列表中(或者只是从列表中获取一个数组)并写a[2]。 -
另外,您不能像在 Java 中显示的那样做动态变量。我的意思是,我想你可以通过反思,但这太复杂了。
-
不,即使是反射也不能与局部变量名混淆。可能是字段名称,但您必须预先声明所有字段名称
-
@sma 我认为这基本上是我要问的问题,我只是不确定如何表达它。我认为我真正的问题 是 实际上“你能在 java 中创建动态变量吗”。
-
简短的回答是否定的,这取决于您要达到的目标。您可以将前五个元素复制到本机数组,但这没有意义。