2D阵列上的交叉?

时间:2015-11-13 02:39:45

标签: java arrays

我正在Java中的遗传算法中创建交叉函数。 2个“父母”是2D arrays

Class[][] p1 = new Class[5][7];
        p1 = parent1;
Class[][] p2 = new Class[5][7];
        p2 = parent2;//parents hold an filled array of Classes of the same dimensions as p1 and p2.

并且交叉方法返回一个“子”,它应该保存父1的前2列和父2的最后3列 如何从2D array中选择列并使用它们来创建子数组?

1 个答案:

答案 0 :(得分:0)

java中的多维数组实际上是一个单维数组,其值是数组的实例。因此...

Class[][] p1 = new Class[5][7];
System.out.println(p1.length);    //5
System.out.println(p1[0].length); //7
System.out.println(p1[1].length); //7
// ...
System.out.println(p1[4].length); //7

如果我了解您的目标,那么您需要做的就是创建一个'结果'数组(单维)并在适当的索引处设置适当的值。这是一个开始...

Class[] results = new Class[5]; //2 + 3 == 5 total
results[0] = p1[0];
//...