Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的arraylist在没有静态字段的情况下包含n个相同的元素?_Java_Arraylist_Static - Fatal编程技术网

Java 为什么我的arraylist在没有静态字段的情况下包含n个相同的元素?

Java 为什么我的arraylist在没有静态字段的情况下包含n个相同的元素?,java,arraylist,static,Java,Arraylist,Static,我正在尝试将对象添加到arraylist。这些对象都不包含任何静态字段或静态方法,但在更新arraylist时,所有元素都采用“new”值。此外,每次循环时都会创建一个新实例,因此我不认为我一直在添加相同的对象 ArrayList<Integer> rewards = new ArrayList<Integer>(); ArrayList<ArrayList<Route>> neighbours = new ArrayList<ArrayL

我正在尝试将对象添加到arraylist。这些对象都不包含任何静态字段或静态方法,但在更新arraylist时,所有元素都采用“new”值。此外,每次循环时都会创建一个新实例,因此我不认为我一直在添加相同的对象

ArrayList<Integer> rewards = new ArrayList<Integer>(); 
ArrayList<ArrayList<Route>> neighbours = new ArrayList<ArrayList<Route>>();

for(int i=0; i<10; i++)
{
    Generate1Neighbour neighbour = new Generate1Neighbour(testDataFile,amp2Solution,randomGenerator,i);
    System.out.println("Generated neighbour (Reward " + getSolutionReward(neighbour.solution)+ "): " + neighbour.solution.toString());
    rewards.add(getSolutionReward(neighbour.solution));
    neighbours.add(neighbour.solution);
}
ArrayList奖励=新建ArrayList();
ArrayList邻居=新的ArrayList();

对于(int i=0;我不知道您刚才是否已经问过这个问题了?您的代码也应该正常工作。@EJP问题中指出,
奖励
包含不同的元素。什么是
amp2Solution
,以及
生成了什么()
constructor如何处理?请提供
generate1neighbor的代码class@EJP我编辑了这个问题,希望这有帮助!
public ArrayList<Route> solution;
public static int getSolutionReward(ArrayList<Route> solution)
{
    int totalReward = 0;
    for(Route route : solution)
    {
        totalReward += route.getReward();
    }
    return totalReward;
}
public Generate1Neighbour(DataFile testDataFile, ArrayList<Route> Sol, Random randomGen, int q_tabu) throws IOException
{
    System.out.println("Starting Tabu procedure ");
    neighbourhoodSize = "Small";
    solution = Sol;
    S_Comp = new ArrayList<MyNodesData>();
    startPoint = testDataFile.getStartPoint();
    finishPoint = testDataFile.getFinishPoint();
    maxDuration = testDataFile.getMaxDuration();
    randomGenerator = randomGen;
    toRemoveRVI = 3;

    //----------------(A) : Initialization---------------- 
    parameterSet = new ParameterSet(neighbourhoodSize, testDataFile);
    generateSComp(testDataFile, solution, S_Comp);

    //---------Generating neighborhood solutions---------   //Generate number of neighborhood solutions (feasible and 
                                                            //infeasible) to the current solution, based on current
                                                            //tabu parameters.

    routeNumbers = twoRandomTours(solution, randomGenerator);   
    r1 = solution.get(routeNumbers[0]);
    r2 = solution.get(routeNumbers[1]);         

    solution = insertInS(solution, routeNumbers, maxDuration, startPoint, finishPoint, S_Comp, SE, successfulInsert);           
    if(!successfulInsert)
    {
        solution = exchangeWithSComp(solution, parameterSet, routeNumbers, maxDuration, S_Comp, randomGenerator);       
        new RoutesToXLS(solution, "Tabu3");
    }
    else
    {
        new RoutesToXLS(solution, "Tabu2");
    }

    //----------------(B) : Improvement---------------- 

    solution = balance(solution,r1,r2);     
    if(!successfulBalance)
    { 
        exchangeBetweenTours(r1,r2);                    
        new RoutesToXLS(solution, "Tabu5");
    }
    else
    {
        new RoutesToXLS(solution, "Tabu4");
    }
    if(q_tabu % parameterSet.getChi() == 0 && q_tabu!=0)        
    {   
        solution = RVI(solution, routeNumbers, maxDuration, startPoint, finishPoint, S_Comp, SE, randomGenerator, toRemoveRVI, successfulInsert);
        new RoutesToXLS(solution,"AfterRVI");
    }
}