for迴圈與foreach效能比較與適用場景

2021-10-23 12:42:00 字數 591 閱讀 3454

for迴圈

for(int i=0;i<100;i++)

foreach迴圈

for(int i : integers)

//等同於

for(iterator i=list.iterator(

);i.hasnext();

)

效能上的區別:

對於linkedlist,是單鏈表,使用for迴圈每次都要從第乙個元素讀取next域來讀取,速度非常慢;例如:從a[0]開始讀元素、然後通過a[0]的next讀到a[1]元素、通過a[0]的next的next讀到a[2]元素。

對於arraylist,是順序表,使用for迴圈可以順序訪問,速度較快;例如:從a[0]開始直接讀到元素,接著直接讀a[1];(順序表的優點,隨機訪問)

綜述:使用arraylist時配合for迴圈使用,使用linkedlist時配合foreach使用會更好。

C 中for和foreach迴圈的效能

大家先來看看如下三個迴圈 int foo new int 100 1,foreach int i in foo console.writeline i.tostring 複製 2,for int index 0 index console.writeline foo index tostring 複...

for迴圈與foreach的區別

首先說一下foreach有的也叫增強for迴圈,foreach其實是for迴圈的乙個特殊簡化版。再說一下foreach的書寫格式 for 元素型別 元素名稱 遍歷陣列 集合 或者能進行迭代的 用for迴圈的話就會麻煩很多 複製 public static void main string args ...

for迴圈與foreach的區別

for迴圈與foreach的區別 foreach 依賴 ienumerable.第一次 var a in getlist 時 呼叫 getenumerator 返回第乙個物件 並 賦給a,以後每次再執行 var a in getlist 的時候 呼叫 movenext.直到迴圈結束.期間getlis...