0

我必须在一个将行星添加到星系的类中创建这个小方法,但似乎数组 planeta 中的元素 k+1 没有被替换……是因为它在 if 语句中吗?

public void addPlanet(String planetName, BigInt x, BigInt y, BigInt z) {        
    if (planetExists(planetName) && !complete()){       
        newSP= new SpacePoint(x,y,z);
        newPlanet= new Planet("planetName",newSP);          
        int k=this.size();      
        planeta[k+1]=planetName; //doesnt replace because its inside the if??
    }
}

如果这是一个简单的问题,我很抱歉,我在大学上 Java 课程,我真的很新…… PS:顺便说一句,谢谢大家,这些天你们一直是我的老师!=)

4

1 回答 1

3

我怀疑问题在于您实际上应该更换planeta[k]- 并增加尺寸。

数组在 Java 中是从 0 开始的,所以如果你的大小是 2,你的数组可能有值:

planeta[0] = "Earth";
planeta[1] = "Jupiter";

...所以下一个要填充的插槽是planeta[2], 并将大小增加到 3。

更好的选择是使用 a List<String>(例如 an ArrayList<String>),这样您就可以调用add,并且您不必担心溢出数组的边界等。

于 2013-04-09T20:22:08.487 回答