哪种方式会更有效率? (Java Android编程)

时间:2014-03-10 10:54:32

标签: java android performance

在我的应用程序中,我需要更改整数变量的值。我改变了这种方式,就像这样

  int variable; 

    if (condition) {
        variable= 1;                
    } 
    else if (condition) {
        variable= 2 ;               
    }
   ..........
   ..........
    else {
        variable=3;
    }

或者我应该声明一个数组并像这样改变变量的值

int variable; 

    if (condition) {
        variable= array[0];                
    } 
    else if (condition) {
        variable= array[1];               
    }
   ..........
   ..........
    else {
        variable=0;
    }

哪种性能更优化的方式?或两者都这样做?

3 个答案:

答案 0 :(得分:0)

如果梯形图

太多,您可以使用switch语句以获得更清晰和快速访问

答案 1 :(得分:0)

如果您的值是常量和简单整数,那么第一个选择更为可取,因为这样可以避免创建数组的开销,从而为您节省一些内存。 :)

此外,为了在条件之间切换,您可以将@henrycharles的答案视为开关案例,有时证明比if-else更有效。

答案 2 :(得分:0)

在我假设的第二种情况下,性能稍差(但你不会注意到它)。我的意思是你必须将额外的变量带入堆栈 - 数组本身。您还需要更多内存来创建和保留数组。

但是因为你有if / else分支,错过的if / else分支会比array或not-array产生更大的影响。 无论哪种方式我都不会太担心它,这种差异将是ns的顺序。

当然,你总是称之为衡量标准 - 但微观基准测试Java并不总是那么容易。