I have this code
ArrayList<ArrayList<Integer>> Pareto_set_List=new ArrayList<ArrayList<Integer>>();
for(Optimization_Problem.General_Calculation.Get_Another_Solution=0;Optimization_Problem.General_Calculation.Get_Another_Solution<Input.General_Inputs.Monte_Carlo_Step;Optimization_Problem.General_Calculation.Get_Another_Solution++){
int Count_Location=0;
for(Optimization_Problem.General_Calculation.Count_year=0;Optimization_Problem.General_Calculation.Count_year<Input.General_Inputs.Analysis_Period;Optimization_Problem.General_Calculation.Count_year++){
//Run code Calculation not shown here.
for(int j=0;j<Input.General_Inputs.Num_Of_Ppes;j++){
Pareto_set_List.get(Optimization_Problem.General_Calculation.Get_Another_Solution).add(EncodingUtils.getInt(solution.getVariable(j)));
Count_Location++;}
double[] objectives = solution.getObjectives();
//System.out.println("Solution " + (1) + ":");
Pareto_set_List.get(Optimization_Problem.General_Calculation.Get_Another_Solution).add((int) Math.floor(objectives[0])); Count_Location++;
Pareto_set_List.get(Optimization_Problem.General_Calculation.Get_Another_Solution).add((int) Math.floor(objectives[1])); Count_Location++;
Pareto_set_List.get(Optimization_Problem.General_Calculation.Get_Another_Solution).add((int) Math.floor(objectives[2])); Count_Location++;
}
}
Optimization_Problem.General_Calculation.Count_year=0;
}
}
Когда я запускаю это я получаю эту ошибкуIndexOutOfBoundsException: Индекс: 0 Размер: 0 2D Список_массивов
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at Implementation_Method.main(Implementation_Method.java:53)
Я думал, что список массив является динамическим, и я понятия не имею, почему я получил эту ошибку. Я трачу много времени на это, не решаясь, что любая помощь высоко ценится. Спасибо заранее.
спасибо за ответ, но я уже определил список массивов в начале ArrayList> Pareto_set_List = new ArrayList >(); –
Мне нужно сделать этот шаг непосредственно перед этой точкой, вы имеете в виду Pareto_set_List.get (Optimization_Problem.General_Calculation.Get_Another_Solution) .add (EncodingUtils.getInt (solution.getVariable (j))); –
Возможно, вы определили и инициализировали 'Pareto_set_List', но добавили ли вы * какие-либо экземпляры' ArrayList', прежде чем вызывать 'get'? Если вы этого не сделаете, размер ArrayList будет равен 0, и попытка доступа к элементу по любому индексу приведет к тому, что исключение будет выбрано. – TNT