如果我有许多类似的课程,请说:
Integer i0;
Integer i1;
Integer i2;
Integer i3;
Integer i4;
Integer i5;
Integer i6;
Integer i7;
Integer i8;
Integer i9;
并希望避免这样做:
i0 = 0;
i1 = 1;
i2 = 2;
i3 = 3;
i4 = 4;
i5 = 5;
i6 = 6;
i7 = 7;
i8 = 8;
i9 = 9;
我正在考虑做类似的事情以达到相同的效果:
int cnt = 0;
for(classname : arrayOfClassNames {
classname = cnt++;
}
我该怎么做?
[澄清]我似乎被误解了。我更多地考虑了10个单独的类,而不是一个有10个项目的数组。
答案 0 :(得分:9)
使用数组或ArrayList?
// using an array
Integer[] ints = new Integer[10];
for (int i = 0; i < 10; i++) {
ints[i] = i;
}
// using an array list
ArrayList<Integer> ints = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
ints.add(i);
}
继续更新后,您可以使用
实现目标Class.forName(classname).newInstance();
但是,我建议无论你及时编写代码,都会失去可读性和易维护性,因此你可能会发现这是一种虚假经济。
答案 1 :(得分:5)
将它们存储在一个数组中:
Integer[] array = new Integer[10];
for(int i = 0 ; i < 10 ; i++){
array[i] = i ;
}
获取i9:array[9]
答案 2 :(得分:1)
许多类似的类听起来像你想要一个数组:
Integer[] manyI = new Integer[] {0, 1, 2, ....};
或者用循环填充数组:
Integer[] manyI = new Integer[10];
for (int i = 0; i < manyI.length; i++) manyI[i] = i;
答案 3 :(得分:1)
使用java.util.Map<T, K>
:
Map<String, Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < 10; i++)
{
map.put("i" + i, i);
}
System.out.println(map);
System.out.println("i8: " + map.get("i8"));