问一个JAVA程序效率的问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:22:29
JAVA中:

if(条件){语句;} else 语句;
-----------------
if(条件){语句;}
语句;

这两种哪个效率高? 为啥?

另问:下面两个方法哪个效率高,我觉得是第一个要高,但是不大会计算复杂度啥的,谁能给个定量的计算啊,谢谢啦
/*
元素列表:A、B、C、D、E、F、G、H、I、J、K、L、M、N
在这之中:A、B、C、D、E 五个元素需做特别处理,其余做标准处理
map可能包括这14个元素中的任意多个(最多14个元素,最少1个元素),无重复,元素间无关联

第一种方法:
for(key : map){
if(key==A || key==B || key==C || key==D || key==E ){
if(key==A){特殊处理A}
else if(key==B){特殊处理B}
else if(key==C){特殊处理C}
else if(key==D){特殊处理D}
else if(key==E){特殊处理E}
}else 标准处理key;
}

第二种方法:
if(map!=null){
if(map.get("A")!=null){特殊处理A}
if(map.get("B")!=null){特殊处理B}
if(map.get("C")!=null){特殊处理C}
if(map.get("D")!=null){特殊处理D}
if(map.get("E")!=null){特殊处理E}

if(map.get("F")!=null){标准处理}
if(map.get("G")!=null){标准

当然是if else这样效率高了

比方说:
如果if(key==A)这个条件成立 运行完毕if里面语句以后 只要碰到else 那么就会跳过这些语句根本不会去执行 这样方法一就相当于执行了一条语句就是if(key==A){特殊处理A}

而方法二中由于没有加else 所以碰见if系统就会进入这条语句判断一下 看看条件是不是成立 就算满足第一个条件 if(map.get("A")!=null) 后面的if语句还是要执行的 这样逐一判断 把所有的if语句都执行了一次 效率就低了

顶一下,再来看答案!

第一个弄出来的结果不一样吧
这种不用太在意,在意的话以后写程序记得多用~,&,|,<<,>>之类的符合或者干脆弄写汇编语言

第二个我不知道有多大意义,要求要效率的话好像一般用HashMap据说读写都是O(1)的虽然写过几次但我到现在还是不太相信那个hash