Maison > Java > javaDidacticiel > le corps du texte

Comment remplacer le commutateur en Java

王林
Libérer: 2023-05-16 21:49:04
avant
1374 Les gens l'ont consulté

Replace switch

L'instruction de mot-clé switch est utilisée pour le jugement multi-conditions. La fonction de l'instruction switch est similaire à l'instruction if-else et les performances des deux sont similaires. Par conséquent, on ne peut pas dire que l’instruction switch réduira les performances du système. Cependant, dans la plupart des cas, il est encore possible d’améliorer les performances dans l’instruction switch.

Regardez l'exemple suivant :

public static void main(String[] args) {                 long start = System.currentTimeMillis();                 int re = 0;                 for (int i = 0;i<1000000;i++){             re = switchInt(i);             System.out.println(re);         }         System.out.println(System.currentTimeMillis() - start+"毫秒");//17860     }         public static int switchInt(int z){                    int i = z%10+1;                    switch (i){                        case 1:return 3;                        case 2:return 6;                        case 3:return 7;                        case 4:return 8;                        case 5:return 10;                        case 6:return 16;                        case 7:return 18;                        case 8:return 44;                        default:return -1;      }   }
Copier après la connexion

En ce qui concerne la logique de branchement, les performances de ce mode de commutation ne sont pas mauvaises. Mais si vous utilisez une nouvelle idée pour remplacer le commutateur et obtenir les mêmes fonctions du programme, il y aura une grande marge d'amélioration des performances.

public static void main(String[] args) {                 long start = System.currentTimeMillis();                 int re = 0;                 int[] sw = new int[]{0,3,6,7,8,10,16,18,44};                 for (int i = 0;i<1000000;i++){             re = arrayInt(sw,i);             System.out.println(re);         }         System.out.println(System.currentTimeMillis() - start+"毫秒");//12590     }         public static int arrayInt(         int[] sw,int z){                 int i = z%10+1;                 if (i>7 || i<1){                        return -1;         }else {                        return sw[i];         }     }
Copier après la connexion

Le code ci-dessus utilise une nouvelle idée, en utilisant un tableau continu au lieu de l'instruction switch. Parce que l'accès aléatoire aux données est très rapide, au moins meilleur que le jugement de branche du commutateur. Grâce à des expériences, l'instruction utilisant switch prend 17 860 ms et l'implémentation utilisant array ne prend que 12 590 ms, ce qui représente une amélioration de plus de 5 s. Dans le développement de logiciels, changer de façon de penser peut permettre d'obtenir de meilleurs résultats. Par exemple, l'utilisation d'un tableau pour remplacer l'instruction switch est un bon exemple.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal