我的函数的目标是在两个 Vector 之间使用 1 点交叉函数来获得一个新的混合“Son” Vector,其中包含第一个 Vector 中的一些元素和第二个 Vector 中的一些元素。
public Vector crossover(int Sol1,int Sol2){
int size;
Vector sol1 = new Vector();
Vector sol2 = new Vector();
sol1 = (Vector) allpop.get(Sol1);
sol2 = (Vector) allpop.get(Sol2);
int crosspoint = (int) sol1.size()/2 ;
Vector son = new Vector();
son= (Vector) sol1.clone() ;
if (sol1.size() < sol2.size())
size = sol1.size();
else size = sol2.size();
for(int j=(crosspoint-1);j<size;j++)
son.set(j,sol2.get(j));
return son;
}
有时它工作得很好,有时它给我“java.lang.ArrayIndexOutOfBoundsException”错误..一些想法?