1. 程式人生 > >今天遇到了一道沒有見識過的筆試題,在這裡跟大家分享下,也算是自己做個記錄:

今天遇到了一道沒有見識過的筆試題,在這裡跟大家分享下,也算是自己做個記錄:

題目:如何優化for(int i=0;i<list.size();i++){...}

平時我一般就是這麼寫的,沒有想過這個問題;然後百度下發現這樣:

for(int i=0,len=list.size();i<len;i++){...}就可以優化了;因為判斷條件每次迴圈都執行嘛,然後如果每次都呼叫size()

的開銷肯定會比兩個變數的比較大,那麼優化就可以初始化時呼叫size()初始化迴圈的結束條件,從而優化。還有

一個問題,就是如果size()改變,即迴圈內部有向列表新增或刪除的操作,那麼迴圈按原來的寫或是下面的寫好像

都有問題,我記得是這樣寫的:

for(int i=0;i<list.size();i=0){

list.remove(i);//這好像是從頭到尾刪空list的程式碼

}