2015-11-13 44 views
0

我正在創建遺傳算法中的交叉函數的過程中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列和父母的最後3 2
如何選擇一個「孩子」來自2D array的列並使用它們來創建子數組?

回答

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]; 
//...