次のコードに問題があります。コードが何をしているのか、または何を意図しているのかを見てみましょう。このcreateZoo
メソッドは次のことを行います。
Cage
オブジェクトの配列を作成します- この配列の各インデックスに、2 つの動物オブジェクトで構成される交配ペア オブジェクトが追加されます。
newZoo.add(cage[i])
- これにより、ケージ オブジェクトがZoo
クラスの add メソッドに渡されます。Zoo
クラスのリストに追加されます。
Zoo
クラスでこのリストにアクセスしてケージ オブジェクトを取得すると、問題が発生します。取得されたケージ オブジェクトは正しくありません。あいまいで申し訳ありませんが、クラスのケージにcage[i]
追加する引数を渡すとき、問題は上記のポイント 3 にあると思います。代わりにインデックスを渡す必要がありますか?List<Cage>
Zoo
ありがとう。
class algo{
private int counter = 15;
private Zoo newZoo = new Zoo();
public void createZoo() {
Cage[] cage = new Cage[counter];
//initialize cage array with cage objects
initializeCageArray(cage);
while(counter>0) //outer while loop
for(int i =0; i<counter; i++)
{
for(int x = 0,y = end of array;x<somecounter; x++, y--)
{
Animal animala = Animal.get(x)
Animal animalb = Animal.get(y);
cage[i].add(new MatingPair(animala, animalb));
}
//adds cage object to list container in zoo class
//Am I passing the wrong thing here - maybe I need to pass an index?
newZoo.add(cage[i]);
--counter;
}
}