我有List
大小 n ,我必须动态创建n
变量,即我想根据列表的大小动态创建变量。我怎样才能做到这一点?
假设List
为List<Integer> year
,其中包含 n 元素;
然后我必须从上面的列表中创建 n Integer
变量。
编辑:如果我有包含3个元素的列表,我想创建3个变量,如
a = list(0);
b = list(1);
c = list(2);
这样的列表可能有任意数量的元素,然后我必须创建那么多的变量。希望我现在很清楚。
感谢。
答案 0 :(得分:7)
您无法像建议的那样创建n
局部变量。 (他们的名字是什么?)
您需要将变量(或更确切地说是整数值)存储在List
或其他Collection
中,并在循环中填充它们:
int n = year.size();
List<Integer> theIntegers = new ArrayList<Integer>(n);
for (int i = 0; i < n; i++)
theIntegers.add(i);
给你year.size()
个整数(0,1,2,...)。
然后,您可以通过
访问整数theIntegers.get(4);
如果要读取索引为4和
的整数theIntegers.set(4, 10);
如果要将索引为4的整数更新为值10。
在这种情况下你也可以创建一个数组:
int[] ints = new int[year.size()];
for (int i = 0; i < ints.length; i++)
ints[i] = i;
答案 1 :(得分:0)
我无法在Java中知道动态地向范围添加变量。您可以使用地图作为变量的类型......好吧,映射:
final List<Integer> years = getYearList();
final Map<String, Integer> yearMapping = new HashMap<String, Integer>();
for(int year : years)
{
final String name = generateNameForYear(year);
yearMapping.add(name, new Integer(year));
}
// Later... Get "variables" out of the map:
final String variableName = "fooYear";
if (yearMapping.containsKey(variableName))
{
final Integer variableValue = yearMapping.get(variableName);
}
else
{
// "variable" does not exist.
}