Java 向不带arrayList的数组中添加元素

Java 向不带arrayList的数组中添加元素,java,arrays,object,Java,Arrays,Object,我试图定义一个名为add()的方法,该方法将对象Fish添加到数组Fish[]。如果不使用arrayList,我将如何处理此问题?我一直收到错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:1 public class Pond { private Fish[] fish; private int numFish ; private int capacity; public Pond(int capacity){ t

我试图定义一个名为add()的方法,该方法将对象Fish添加到数组Fish[]。如果不使用arrayList,我将如何处理此问题?我一直收到错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常异常:1

public class Pond {
private Fish[] fish;
private int numFish ;
private int capacity;

public Pond(int capacity){
    this.capacity = capacity;
}
public int getNumFish(){ return numFish;
}
public boolean isFull(){//Ponds can only have so many fish
    boolean Full = false;
    if (numFish >= capacity){
        Full = true;}
    return Full;
}
public void add(Fish aFish) {// puts a fish in the pond--OR-- replaces a fish that has been temporarily removed 
    if (numFish < capacity){
        fish[numFish++] = aFish;}
}
公共类池{
私人鱼[]鱼;
私家努姆鱼;
私人int能力;
公共池塘(总容量){
这个。容量=容量;
}
public int getNumFish(){返回numFish;
}
public boolean isFull(){//池塘只能有这么多鱼
布尔满=假;
如果(numFish>=容量){
Full=true;}
全额退还;
}
public void add(Fish aFish){//将一条鱼放入池塘中,或替换暂时移除的鱼
如果(numFish<容量){
鱼[numFish++]=aFish;}
}

这里是动态数组解决方案,它是
ArrayList
方法的简单实现

public void add(Fish aFish) {
    ensureCapacity();
    fish[numFish++] = aFish;
}

private void ensureCapacity() {
    if (numFish == fish.length) {
        int newSize = fish.length * 2;
        Fish[] newFish = new Fish[newSize];

        System.arraycopy(fish, 0, newFish, 0, fish.length);
        fish = newFish;
    }
}

在池塘的构造函数中,您可以添加
fish=新鱼[容量]
将鱼群数组的初始大小设置为池塘的容量。请记住,不能向数组中添加值,只能更改数组中已有的值。

我不断收到给定代码的错误您收到了什么错误?看起来鱼群数组尚未初始化…我收到的错误是:线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:1该错误是因为数组尚未初始化。在构造函数中执行该操作,您将fine@CarlDev未初始化的数组意味着抛出NullPointerException。