Bonjour,

J'aimerais savoir comment faire pour dire que objet1 est égal à ojet2 sans modifier objet2

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
	public Vector<Individu> mutation(Vector<Individu> tabMeilleurs){
 
		// Tableau d'individus mutés
		Vector<Individu> mutants = new Vector<Individu>();
 
		// Taille des meilleurs individus
		int tailleMI = tabMeilleurs.size();
 
		// Taille d'un individu
		int tailleI = tabMeilleurs.get(0).getTailleIndividu();
 
		// Selon taux de mutation
		// Ici pour l'exemple on va muter 7 fois des individus au hasard 
		for(int i=0; i<7; i++){
 
			// Choix aléatoire de l'individu à muter dans N meilleurs
			int positionMI = (int)(Math.random() * (tailleMI));
			System.out.println("Position dans tableau meilleurs individus : " + positionMI);
 
			// Choix au hasard du gène de l'individu à muter
			int positionI = (int)(Math.random() * (tailleI));
 
			// Tire au hasard d'un nombre entre -3 et 3
			int val = (int)(Math.random() * ((3 - (-3)) + 1) + (-3) );
 
			// Un nouveau individu qui est égal au meilleur individu à la positionMI
			Individu individu = tabMI.get(positionMI);
			// Mutation à la positionI par la valeur val de l'individu à la positionMI
			individu.setVal(positionI, val); // setVal est une méthode de la classe Individu
			mutants.add(individu);
 
		}
		return mutants;
	}
Comment faire pour ne pas modifier l'argument de cette méthode car quand le hasard tombe sur le même individu dans le tableau des meilleurs (tabMeilleurs en paramètre) cet individu à été modifié.
Or, je voudrais ici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
// Un nouveau individu qui est égal au meilleur individu à la positionMI
Individu individu = tabMeilleurs.get(positionMI);
// Mutation à la positionI par la valeur val de l'individu à la positionMI
individu.setVal(positionI, val); // setVal est une méthode de la classe Individu
que le tableau des meilleurs reste ce qu'il est mais que je puisse créer un nouveau individu à partir de celui-ci.

Merci d'avance.