Вы не можете использовать a[m + deltatest]
точно, но, возможно, вам помогут следующие методы.
Во-первых, вы можете создать массив переменных и использовать индексы этого массива для индексации в a
. Например:
final int NumVars = 10;
int[] a = new int[NumVars];
IloNumVar[] varArray = cplex.numVarArray(NumVars, 3, 5);
int m = 2;
for (int i = 0; i < (NumVars - m); ++i) {
// i corresponds to the variable at varArray[i].
a[m + i] = 1000;
}
В качестве альтернативы вы можете построить Карту, например, так:
int[] a = new int[10];
Map<IloNumVar, Integer> varMap = new Hashtable<IloNumVar, Integer>();
int currentIndex = 0;
IloNumVar deltatest = cplex.numVar(3, 5);
varMap.put(deltatest, currentIndex++);
int m = 2;
a[m + varMap.get(deltatest)] = 1000;