/ / arrayListなしで配列に要素を追加する - java、arrays、object

arrayListなしで配列に要素を追加する - 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){
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;}
}

回答:

回答№1は0

池のコンストラクタでは、 fish = new Fish[capacity] 魚の配列の最初のサイズをあなたの池の容量に設定します。配列に値を追加できないことは、すでにある値だけを変更することを忘れないでください。


回答№2の場合は0

ここでは、ダイナミックアレイソリューションは、 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;
}
}