Rumah  >  Artikel  >  Java  >  Bagaimana untuk menggantikan suis dalam java

Bagaimana untuk menggantikan suis dalam java

王林
王林ke hadapan
2023-05-16 21:49:041367semak imbas

Ganti suis

Pernyataan suis kata kunci digunakan untuk pertimbangan berbilang keadaan Fungsi pernyataan suis adalah serupa dengan pernyataan if-else, dan prestasi kedua-duanya adalah serupa. Oleh itu, tidak boleh dikatakan bahawa pernyataan suis akan mengurangkan prestasi sistem. Walau bagaimanapun, dalam kebanyakan kes, masih terdapat ruang untuk peningkatan prestasi dalam pernyataan suis.

Lihat contoh berikut:

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

Dari segi logik cawangan, prestasi mod suis ini tidak teruk. Tetapi jika anda menggunakan idea baharu untuk menggantikan suis dan mencapai fungsi program yang sama, terdapat banyak ruang untuk peningkatan dalam prestasi.

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

Kod di atas menggunakan idea baharu, menggunakan tatasusunan berterusan dan bukannya pernyataan suis. Oleh kerana akses rawak kepada data adalah sangat pantas, sekurang-kurangnya lebih baik daripada menukar pertimbangan cawangan. Melalui percubaan, pernyataan menggunakan suis mengambil masa 17860ms, dan pelaksanaan menggunakan tatasusunan hanya mengambil masa 12590ms, iaitu peningkatan lebih daripada 5s. Dalam pembangunan perisian, mengubah pemikiran anda mungkin mencapai hasil yang lebih baik Contohnya, menggunakan tatasusunan dan bukannya pernyataan suis adalah contoh yang baik.

Atas ialah kandungan terperinci Bagaimana untuk menggantikan suis dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam