java - 替换 if java 中的数组元素

标签 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 类(class),而且我真的很新...... PS:顺便说一句,谢谢大家,这些天你们一直是我的老师! =)

最佳答案

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

Java 中的数组是从 0 开始的,因此如果您的大小为 2,您的数组可能有值:

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

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

更好的选择是使用 List<String> (例如 ArrayList<String> ),因此您可以直接调用 add ,并且您无需担心溢出数组的边界等问题。

关于java - 替换 if java 中的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911725/

相关文章:

java - 在PIG程序中找不到类DistributedFileSytem

java - Spring JPA 功能允许在不同实体之间重用单个 Repo 方法

java - JAVA LDAP 中的所有用户

java - 我怎样才能得到当前位置

python - 仅查找 numpy 数组末尾的重复项数量

PHP::当数组 1 的值位于偶数位置而数组 2 位于奇数位置时,如何合并 2 个数组?

java - Kotlin 。 Java 和 PHP 与 MySQL 的性能

java - 是否可以在 java 中交换两个数组索引的值?

arrays - Swift - 按另一个数组的属性对对象数组进行排序

c++ - 字符串数组的二进制搜索和额外功能