替换if java中的数组元素

时间:2013-04-09 20:20:48

标签: java arrays

我必须在一个将行星添加到星系中的类中创建这个小方法,但似乎数组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:顺便说一句,谢谢大家,这些天你一直是我的老师! =)

1 个答案:

答案 0 :(得分:3)

我怀疑问题是你实际上应该替换planeta[k] - 并增加尺寸。

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

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

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

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