Bonjour, j'aimerais optimiser un code.

J'ai un pour chaque composant d'un ArrayList à faire un traitement mais avec des conditions différentes.

Voici en clair ce que à donne codé de 2 façon :


Code 1
avantage : Pas de redondance de code
inconvénient : Perte de temps lorsque la dimension de array est improtante...en effet, on fait la vérification de la valeur type a chaque passage de la boucle alors qu'une seule fois suffit
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
 
private void myFunction(int type){
 
for(i=0;i<array.length;i++){
if(bidule && bidule2){
switch(type){
case 0:if(a<=b){...};break;
case 1:if(a>=b){...};break;
case 2:if(a!=b){...};break;
case 3:if(a==b){...};break;
}
}
 
}
}
Code 2
avantage : plus rapide lorsque la dimension de array est importante
inconvénient : redondance de code dans la boucle for
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
 
private void myFunction(int type){
 
 
switch(type){
case 0:{
for(i=0;i<array.length;i++){if(bidule && bidule2){if(a>=b){...}}}
;break;
}case 1:{
for(i=0;i<array.length;i++){if(bidule && bidule2){if(a<=b){...}}}
;break;
}case 2:{
for(i=0;i<array.length;i++){if(bidule && bidule2){if(a!=b){...}}}
;break;
}case 3:{
for(i=0;i<array.length;i++){if(bidule && bidule2){if(a==b){...}}}
;break;
}
}
 
}

Auriez vous une autre solution pour optimiser le code ?
Pour l'instant j'ai opté pour la solution 2

Le must serait que je puisse faire un truc du genre :

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
 
private void myFunction(int type){
 
Verificator ve;
switch(type){
case 0:ve='<=';break;
case 1:ve='>=';break;
case 2:ve='!=';break;
case 3:ve='==';break;
}
 
for(i=0;i<array.length;i++){
if(bidule && bidule2){
if(a ve b){...}
}
 
}
}