gpt4 book ai didi

java - 在java中的arrayList中生成动态对象名称

转载 作者:行者123 更新时间:2023-11-30 09:16:06 24 4
gpt4 key购买 nike

我正在这个名为“毕业”的论坛帖子上做最后一个挑战,但在 Java 中除外:http://www.cplusplus.com/forum/articles/12974/

我基本上偶然发现了一个问题,如果我有一个根据雄性和雌性的数量产生新后代的兔子对象数组列表,我需要为列表中的每个新后代提供一个动态名称,否则编译器会mental 并抛出一个 ConcurrentModifierException(我假设这是因为它试图遍历具有相同变量名的多个对象)。

我能想到的唯一方法是制作一个 Bunny 对象数组,例如:

bunnyList.add(bunny[i + 1]) 

其中 i 是所有兔子的“全局”ID。但问题是,如果我将它添加到列表中,它就是非法的。老实说,我也不确定为什么,因为我将数组列表设置为兔子数组类型,而不是普通的老兔子。

public class Bunnies {

private static ArrayList<Bunny[]> bunnyList = new ArrayList<Bunny[]>();
private static Bunny[] bunny = new Bunny[500]; //gives it a kind of id
private static int i = 0; //global bunny counter

Bunnies(){

//init the game list.
initBunnyGameList();
}

private void initBunnyGameList(){

for (int i = 0; i < 5; i++){
bunny[i] = new Bunny();
bunnyList.add(bunny[i]); //ILLEGAL :(!
}

}
}

同样这样做似乎是一种巨大的内存浪费,为 500 个可能的兔子对象创建一个数组空间,但只使用一个空间作为标识符。但我似乎无法想出一种以任何其他方式动态命名每个变量的方法。真的,我需要的是一种在我制作兔子时生成末尾带有数字的变量的方法,这样无论如何它们都是独立的。

有什么建议吗?

最佳答案

bunny[i]实际上是一个 Bunny对象,不是 arrayBunny对象。

private static ArrayList<Bunny[]> bunnyList = new ArrayList<Bunny[]>(); 

应该是

private static ArrayList<Bunny> bunnyList = new ArrayList<Bunny>(); 

关于java - 在java中的arrayList中生成动态对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19549204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com