小编Jac*_*der的帖子

在捕食者猎物程序中找不到我认为是内存泄漏的东西

我的程序有六个类,我相信我的大多数代码是正确的,但是当我运行它时,没有打印语句发生,相反,该程序将永远继续运行而没有输出。如果我为更大的数字(100+)运行模拟,则会导致大量的内存泄漏。我似乎找不到问题所在,但是代码无法正确执行。

****(我在哪里执行程序以及我认为错误在哪里)

import java.util.*;
public class {
    public static void main(String[]args){
        SubSim simulate=new SubSim();
        ArrayList<Wolf>WolfArrayList=new ArrayList<>();
        ArrayList<Moose>MooseArrayList=new ArrayList<>();
        ArrayList<Grass>GrassArrayList=new ArrayList<>();
        for (int i=0;i<simulate.getInitialWolves();i++){
            WolfArrayList.add(new Wolf(simulate));
        }
        for (int i=0;i<simulate.getInitialMoose();i++){
            MooseArrayList.add(new Moose(simulate));
        }
        for (int i=0;i<simulate.getMaxX();i++){
            for (int j=0;i<simulate.getMaxY();j++){
                int grassroll=(int)(Math.random()*5);
                if (grassroll==1||grassroll==2||grassroll==3||grassroll==4){
                    GrassArrayList.add(new Grass(simulate,i,j,2));
                }
                else{
                    GrassArrayList.add(new Grass(simulate,i,j,0));
                }
            }
        }
        simulate.setGrassArrayList(GrassArrayList);
        simulate.setMooseArrayList(MooseArrayList);
        simulate.setWolfArrayList(WolfArrayList);
        System.out.println("Ticks        Wolves          Moose");
        for(int i=1;i<=20;i++){
            System.out.printf("%d           %d          %d\n",(i-1),simulate.getWolfPop(),simulate.getMoosePop());
            simulate.run();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

**课**

    import java.util.*;
public class  extends Simulator{
//making private variables
private ArrayList<Grass> GrassArrayList;
private …
Run Code Online (Sandbox Code Playgroud)

java memory-leaks arraylist

1
推荐指数
1
解决办法
59
查看次数

标签 统计

arraylist ×1

java ×1

memory-leaks ×1