parcourir une chaine d'instance d'une classe
Salut a tous ,
J'ai une classe apelé PrismRule qui un des champ de cette classe c'est next qui est de type PrismRule Aussi car il va contenir la regle "PrismRule suivante" , apres avoir instancier plusieurs instance et les relier par le champ m_next je veux selectionner un certain nombre d'instancede cette chaine de PrismRule voila le code que j'ai fait:
Code:
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
public List<PrismRule> SelectR= new ArrayList<PrismRule>();
private PrismRule SelectCR(PrismRule PCR_rules, int s) throws Exception {
PrismRule Selected_rules =null;
//poser les rule generer par add dans une list
while(PCR_rules.m_next !=null){
SelectR.add(PCR_rules);
PCR_rules=PCR_rules.m_next;
}
System.out.print("after add miiiii {---- "+SelectR.size()+"---]yyyyyy");
//---------------------------------------------
float Best=(SelectR.get(0)).m_errors; // ici on va choisir entre (laplace ...)
int place=0;
for(int u=0; u<s;u++){
System.out.print("one for");
for(int i=0; i<SelectR.size();i++){
if ((SelectR.get(i)).m_errors < Best) {
Best= (SelectR.get(i)).m_errors; // on doit changer m_errors
place=i;
}
}
if(Selected_rules == null) {
Selected_rules=SelectR.get(place);
Selected_rules= Selected_rules.m_next;
SelectR.remove(place);
// System.out.println("Selected_rules ="+ Selected_rules);
}
else{
// System.out.println("am here not nu");
Selected_rules.m_next=SelectR.get(place);
SelectR.remove(place);
Selected_rules= Selected_rules.m_next;
}
}
return Selected_rules ;
} |
PCR_rules : c'est la chaine dee PrismRule que je veux parcourir
je vais la copier dans une arraylist , mais ce que j'obtiens quand je fait SelectR.add (PCR_rules) chaque element du arraylist contien toute la PCR_rules et non pas un seule element malgré que je fait une boucle