Maison >Java >javaDidacticiel >Comment remplacer le commutateur en Java

Comment remplacer le commutateur en Java

王林
王林avant
2023-05-16 21:49:041408parcourir

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;      }   }

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];         }     }

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer