1. 程式人生 > >Android中List迴圈遍歷效能對比

Android中List迴圈遍歷效能對比

在android開發中只要是列表式風格介面我們幾乎都需要用到List來存放資料,在數量很少的List的話幾乎任何一種迴圈遍歷方式整體效能都無差別,但是當我們遇到資料量稍大的時候有必要考慮用哪種方式寫起來比較高效能。
常見的有以下三種:
第一種

for (String s : tests) {
    // ....
}

第二種

int size = tests.size();
for (int i = 0; i < size; i++) {
    tests.get(i);
}

第三種

Iterator<String> it = tests.iterator();
    while
(it.hasNext()) { it.next(); }

採用以上三種在資料量少於等於100的情況下幾乎輸出時間都為0,當在1000左右的時候第三種稍微慢在1ms左右<可能在當時的環境原因>可以說三種方式也是沒差別,當資料量在10000左右我們就能看到區別了第一種和第三種差不多要4ms而第二種只要2ms,當資料量在100000左右的話第一種差不多要40ms,第二種17ms,第三種33ms。

這裡寫圖片描述

宣告:以上環境在MacBook Pro -> Eclipse -> Android5.0 -> Nexus5手機環境下的測試結果,Google以下資料顯示在非JIT的情況下其實第一種是最快的,但是在Android環境下還是採用第二種才是最佳效能選擇。