0

arraylist に奇妙な問題があります。for ループで arraylist にオブジェクトを追加します。arraylist add メソッド以外はすべて正常に動作しています。リストに各オブジェクトが 2 回追加されているようですが、その理由がわかりません。これが私のコードです

private void generateCitizens()
{
    int counter = Constants.CITIZENS_NUMBER;
    Random r = new Random(Calendar.getInstance().getTimeInMillis());
    while(counter > 0)
    {
        int x = r.nextInt(Constants.TILES_IN_WIDTH) + 1;
        int y = r.nextInt(Constants.TILES_IN_HEIGHT) + 1;

        if(map.collisionTable[y][x] == 2)
        {
            Citizen c = new Citizen(x, y, citizenTexture.deepCopy(), map);
            citizensList.add(c);
            Log.i("Citizens count", String.valueOf(citizensList.size()));
            scene.attachChild(c);
            counter--;
        }
    }

    for(int i = 0; i<citizensList.size(); i++)
    {
        Log.i("Citizen - ", citizensList.get(i).toString());
    }
}

この場合、Constants.CITIZENS_NUMBER は 15 で、これがログに記録されたものです

05-10 15:13:36.801: 私/市民数(3237): 2 05-10 15:13:36.801: 私/市民数(3237): 4 05-10 15:13:36.801: 私/市民数( 3237): 6 05-10 15:13:36.801: 私/市民数 (3237): 8 05-10 15:13:36.801: 私/市民数 (3237): 10 05-10 15:13:36.811: 私/市民数(3237): 12 05-10 15:13:36.811: 私/市民数(3237): 14 05-10 15:13:36.811: 私/市民数(3237): 16 05-10 15:13 :36.811: I/市民数(3237): 18 05-10 15:13:36.821: I/市民数(3237): 20 05-10 15:13:36.821: I/市民数(3237): 22 05- 10 15:13:36.821: 私/市民数 (3237): 24 05-10 15:13:36.821: 私/市民数 (3237): 26 05-10 15:13:36.831: 私/市民数 (3237) : 28 05-10 15:13:36.831: 私/市民数 (3237): 30 05-10 15:13:36.831: 私/市民 -(3237): com.lpp.towndefence.Citizen@40535d40 05-10 15 :13:36.831: 私/市民 -(3237): com.lpp.towndefence.Citizen@40535d40 05-10 15:13:36.831: 私/市民 -(3237): com.lpp.towndefence.Citizen@40537318 05-10 15:13:36.831: 私/市民 -(3237): com. lpp.towndefence.Citizen@40537318 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@40514688 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@40514688 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@40799fe8 05-10 15:13:36.841: 私/市民 -(3237) ): com.lpp.towndefence.Citizen@40799fe8 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@4079c308 05-10 15:13:36.841: 私/市民 - (3237): com.lpp.towndefence.Citizen@4079c308 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@4079abd8 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@4079abd8 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@4079b4a0 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@4079b4a0 05-10 15:13:36.841: 私/市民 -(3237): com. lpp.towndefence.Citizen@407ba160 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@407ba160 05-10 15:13:36.841: 私/市民 -(3237): com.lpp.towndefence.Citizen@407ba230 05-10 15:13:36.851: 私/市民 -(3237): com.lpp.towndefence.Citizen@407ba230 05-10 15:13:36.851: 私/市民 -(3237 ): com.lpp.towndefence.Citizen@407ba300 05-10 15:13:36.861: 私/市民 -(3237): com.lpp.towndefence.Citizen@407ba300 05-10 15:13:36.861: 私/市民 - (3237): com.lpp.towndefence.Citizen@407ba3d0 05-10 15:13:36.861: 私/市民 -(3237): com.lpp.towndefence.Citizen@407ba3d0 05-10 15:13:36.861: 私/市民 -(3237): com.lpp.towndefence.Citizen@407ba4a0 05-10 15:13:36.861: 私/市民 -(3237): com.lpp.towndefence.Citizen@407ba4a0 05-10 15:13:36.861: 私/市民 -(3237): com.lpp.towndefence.Citizen@407bac18 05-10 15:13:36.861: 私/市民 -(3237): com. lpp.towndefence.Citizen@407bac18 05-10 15:13:36.871: 私/市民 -(3237): com.lpp.towndefence.Citizen@407bb3f0 05-10 15:13:36.871: 私/市民 -(3237): com.lpp.towndefence.Citizen@407bb3f0 05-10 15:13:36.871: 私/市民 -(3237): com.lpp.towndefence.Citizen@407bbc80 05-10 15:13:36.871: 私/市民 -(3237) ): com.lpp.towndefence.Citizen@407bbc80私/市民 -(3237): com.lpp.towndefence.Citizen@407bbc80 05-10 15:13:36.871: 私/市民 -(3237): com.lpp.towndefence.Citizen@407bbc80私/市民 -(3237): com.lpp.towndefence.Citizen@407bbc80 05-10 15:13:36.871: 私/市民 -(3237): com.lpp.towndefence.Citizen@407bbc80

4

1 に答える 1

1

クラスをサブクラス化しましたListか?

リストnew Citizenに自分自身を追加できますか?またはattachChildシーンの方法?

于 2012-05-10T13:31:41.620 に答える