Hallo, innerhalb meiner Main Methode habe ich folgenden Code:
Am Ende der Schleife sind meine beiden Variablen "erster" und "zweiter" überschrieben, mit den jeweiligen werten von "offspring1" und "offspring2".
Kann mir jemand erklären wieso das passiert und wie ich es verhindern kann? Hat es vll etwas mit den Speicherreferenzen zu tun?
Vielen Dank schonmal im voraus!!
Java:
int[] erster = new int[]{1,1,3,1,2,3,2};
int[] zweiter = new int[]{2,1,3,1,1,2,3};
int[] offspring1 = new int[erster.length];
offspring1=erster;
int[] offspring2 = new int[erster.length];
offspring2=zweiter;
//n-fache Ausführung
for(int n=0; n<1; n++){
int schnitt = new Double(Math.random()*2).intValue(); //Parameterwert setzen
int weins = offspring1[schnitt];
int wzwei = offspring2[schnitt];
for(int k=schnitt+1; k<erster.length; k++){
if(offspring1[k]==wzwei && offspring2[k]==weins){
offspring1[k]=weins;
offspring1[schnitt]=wzwei;
offspring2[k]=wzwei;
offspring2[schnitt]=weins;
break;
}
}
}
Am Ende der Schleife sind meine beiden Variablen "erster" und "zweiter" überschrieben, mit den jeweiligen werten von "offspring1" und "offspring2".
Kann mir jemand erklären wieso das passiert und wie ich es verhindern kann? Hat es vll etwas mit den Speicherreferenzen zu tun?
Vielen Dank schonmal im voraus!!