日期:2014-05-20  浏览次数:20839 次

这段代码还能不能优化?
如题:
Java code


Public boolean xxx(){
  int j=6
for(int i=0; i<10; i++){
    if(i=j){
        return false;
     }
  }
  return true;
}





------解决方案--------------------
你执行过这段代码?确定没错?if里面的条件正确?
------解决方案--------------------
感觉性能不是纠结在这个上面吧?
------解决方案--------------------
探讨
感觉性能不是纠结在这个上面吧?

------解决方案--------------------
那么核心问题在这句话:
if(i==j){ //这个判断,要循环6次才能取值为6才返回false,如果j值为10000,那么要循环10000次,才返回false,我想这里做优化,判断false的时候直接i==j,避免循环10000次

也就是说,你有没有可以直接判断出 false 的其它方式,而不是必须得判断 (i==j)

这样才有可能将你的代码变成:
Java code
public boolean xxx(){
  int j=6;    //这个j值是可变的
  for(int i=0; i<xxoo.size(); i++) {
     if (SomeCondition?) {  
        i = j;
        return false;
     }
  }
  //这里会添加items.add(item);
  return true;
}

------解决方案--------------------
这代码我看不出来有啥好优化的?

你优化了大半天,还不如 Java 编译器的 C1 优化和运行期的 C2 优化!