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 2
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; } } } }
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){...} } } }
Partager