java - 使用字符串写入数组

标签 java arrays string

正在尝试整理代码,本来我就是用这种写入数组的方法,重复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/

相关文章:

php - 如何从不同文件和数组变量中的 mysql_fetch_assoc() 访问连续行?

javascript - ${}(美元符号和大括号)在 JavaScript 中的字符串中是什么意思?

java - 使用 Mockito 测试 @Postconstruct

java - ElasticSearch 解析异常

arrays - HTTP GET 无休止地请求数据

c - 我从堆中分配内存来存储一个字符,但它保存的是一个字符串

c - 将大写字母从 char 数组分离到新数组中,并在 C 中为其重新分配内存

java - 将变量放入 json 文本正文中

java - 创建不可变对象(immutable对象),在没有 new 的情况下实例化

javascript - 添加到 React 中的数组