Rumah > Java > javaTutorial > teks badan

Bagaimana untuk menggantikan suis dalam java

王林
Lepaskan: 2023-05-16 21:49:04
ke hadapan
1371 orang telah melayarinya

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;      }   }
Salin selepas log masuk

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];         }     }
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!