我尝试创建一组决策变量,这些变量不使用for-Loop中的整数值,而是从数组中获取值。
原因是我希望 indices 与数组中的数字相同。 Array的编号可能如下:
int [] Array = {12,11,10,15,16,17};
运行时出现arrayoutofboundsexception
错误。
这里是代码的一部分:
x = new IloNumVar[inputData.Array().length][inputData.Array().length][inputData.Arraytwo().length];
for (int i=0; i< inputData.Array().length;i++){
this.x[inputData.Array()[i]]= new IloNumVar[inputData.Array().length][];
for (int j=0; j< inputData.Array().length;j++){
this.x[inputData.Array()[[i][j] = new IloNumVar[inputData.Arraytwo().length];
for (int k=0; k<inputData.get_sub_K_set().length;k++){
this.xx[inputData.Array()[i]][inputData.Array()[j]][inputData.Arraytwo()[k]]= this.boolVar("x:i_"+inputData.Array()[i]+"-j_"+inputData.Array()[j]+"-k_"+inputData.Arraytwo()[k]);
}
}
}
我感谢任何帮助。 谢谢你们!
答案 0 :(得分:0)
您将Array声明为:
int [] Array = {12,11,10,15,16,17};
然后迭代:
for (int i=0; i< inputData.Array().length;i++){
这意味着i的值为{0,1,2,3,4,5}
和x定义为IloNumVar[6][6][6]
当你这样做时:
this.x[inputData.Array()[i]]
是错误,因为你在x变量中没有索引{12,11,10,15,16,17}
。