private static void calumnTime() {
long start = System.currentTimeMillis();
int count = 0;
for(int i=1;i<5000;i++) {
for(int j=1;j<10;j++) {
switch(j){
case 1:
count+=i;
break;
case 2:
count+=i;
break;
case 3:
count+=i;
break;
case 4:
count+=i;
break;
case 5:
count+=i;
break;
case 6:
count+=i;
break;
case 7:
count+=i;
break;
case 8:
count+=i;
break;
case 9:
count+=i;
break;
default:
break;
}
}
}
long end = System.currentTimeMillis();
System.out.println("用时:"+(end-start));
}
private static void calumnTime1() {
long start = System.currentTimeMillis();
int count=0;
for(int j = 0 ;j<5000;j++) {
for(int i=1;i<10;i++) {
if(i==1) {
count+=i;
}
if(i==2) {
count+=i;
}
if(i==3) {
count+=i;
}
if(i==4) {
count+=i;
}
if(i==5) {
count+=i;
}
if(i==6) {
count+=i;
}
if(i==7) {
count+=i;
}
if(i==8) {
count+=i;
}
if(i==9) {
count+=i;
}
}
}
long end = System.currentTimeMillis();
System.out.println("用时:"+(end-start));
}
以上对于swicth与if进行分支处理效率比较:
在循环次数大约10万次的情况下,switch执行时间在6-8毫秒,if执行时间在10-13毫秒
循环次数大约100万次的情况下,switch执行时间在19-23毫秒,if执行时间在20-40毫秒
循环次数大约1000万次的情况下,switch执行时间在106-170毫秒,if执行时间在300-320毫秒
在千万级数量下,switch效率应该是比单纯用if来做选择处理效率高