Android三種for迴圈效率測試

2021-07-26 01:55:38 字數 2119 閱讀 2594

安卓到現在為止我遇到了兩種for迴圈方式,而常用的for (int i=0;i首先

for (int i=1

;i<=100000

;i++)

我們先向mdatas裡新增十萬條資料,然後再依次迴圈取出。

方式一:

long start = system.currenttimemillis();

for (int i=0

;ilong end = system.currenttimemillis();

long time = end - start;

log.d("log="

,"time = "+time+ ",length = "+mdatas.size());

來看下迴圈三次的log

d/log=: time = 1943,length = 100000

d/log=: time = 1947,length = 100000

d/log=: time = 1865,length = 100000

取平均值:time = 1918ms。

方式二:

int length = mdatas.size();

long start = system.currenttimemillis();

for (int i=0

;i;i++)

long end = system.currenttimemillis();

long time = end - start;

log.d("log="

,"time = "+time+ ",length = "+mdatas.size());

這裡提前計算出了mdatas的size,我們再來看下log

d/log=: time = 1888,length = 100000

d/log=: time = 1817,length = 100000

d/log=: time = 1908,length = 100000

取平均值:time = 1871ms。

方法三:

long start = system.currenttimemillis();

for (int i:mdatas)

long end = system.currenttimemillis();

long time = end - start;

log.d("log="

,"time = "+time+ ",length = "+mdatas.size());

再來看下log

d/log=: time = 1848,length = 100000

d/log=: time = 1843,length = 100000

d/log=: time = 1874,length = 100000

取平均值:time = 1855ms;

這裡的陣列長度為10萬,當陣列長度增加到100萬時測試資料如下

方法一:

d/log=: time = 25831,length = 1000000

d/log=: time = 26365,length = 1000000

d/log=: time = 26640,length = 1000000

取平均值:time = 26279ms。

方法二:

d/log=: time = 21136,length = 1000000

d/log=: time = 23325,length = 1000000

d/log=: time = 23655,length = 1000000

取平均值:time = 22705ms。

方法三:

d/log=: time = 19871,length = 1000000

d/log=: time = 19334,length = 1000000

d/log=: time = 20600,length = 1000000

取平均值:time = 19935ms。

可以看到,方法三優於方法二優於方法三,而且陣列的長度越長其差距越明顯。

注:此次測試應用環境為android studio,手機為紅公尺note3,其它環境可能有差異。

PHP的三種迴圈

while 只要條件為真就迴圈 for 提前知道迴圈的次數 foreach 用來迴圈陣列,指標控制 和while for控制迴圈次數的條件不同 當物件被foreach的時候,內部的valid,current,key方法會依次被呼叫,其返回的值便是foreach語句的key和value。當一次迴圈體結...

三種迴圈的比較

switch case 語法 switch 表示式 變數 case 值1 語句1 break case 值2 語句2 break default 語句3 break 執行過程 當程式執行到switch 表示式 變數 先判斷括號裡的表示式,執行大括號裡的case 後面的值1 如果和值1匹配,就執行語句...

oracle 三種迴圈loop while for

1.簡單迴圈 loop 要執行的語句 exit when 條件語句 條件滿足,退出迴圈語句 end loop 例1.declare int number 2 0 begin loop int int 1 dbms output.put line int 的當前值為 int exit when int...