正在尝试整理代码,本来我就是用这种写入数组的方法,重复20次就长得离谱了
if (ant.getAntNumber() == 3)
{
numbers3.add(ant.getCol());
numbers3y.add(ant.getRow());
}
if (ant.getAntNumber() == 4)
{
numbers4.add(ant.getCol());
numbers4y.add(ant.getRow());
}
我尝试使用 for 循环来执行此操作,但我无法弄清楚如何使用字符串值添加到数组,因为它认为它是一个字符串而不是尝试使用数组
for (int j = 0; j<maxAnts; j++)
{
String str = "numbers" + j;
String str2 = "numbers" + j + "y";
//this part doesnt work
str.add(ant.getCol());
}
任何建议都会有帮助
最佳答案
在 Java 中,您不能使用 String
对象的值来引用实际的变量名称。 Java 会认为您正在尝试对 String
对象调用 add
,但该对象并不存在,并会给出您所看到的编译器错误。
为了避免重复,您需要将列表
添加到两个可以索引的主列表中。
在你的问题中,你提到了数组,但你调用了add
,所以我假设你确实指的是某种List
。
List<List<Integer>> numbers = new ArrayList<List<Integer>>(20);
List<List<Integer>> numbersy = new ArrayList<List<Integer>>(20);
// Add 20 ArrayList<Integer>s to each of the above lists in a loop here.
然后您可以对 ant.getAntNumber()
进行边界检查并将其用作主列表的索引。
int antNumber = ant.getAntNumber();
// Make sure it's within range here.
numbers.get(antNumber).add(ant.getCol());
numbersy.get(antNumber).add(ant.getRow());
关于java - 使用字符串写入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021940/