转 list三种遍历效率
生活随笔
收集整理的這篇文章主要介紹了
转 list三种遍历效率
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第一種:迭代器遍歷 for(Iterator<String>??? it??? =??? list.iterator();??? it.hasNext();??? )??? {???
?????? ....???
?? }??? 這種方式在循環(huán)執(zhí)行過(guò)程中會(huì)進(jìn)行數(shù)據(jù)鎖定,性能稍差,同時(shí)如果你想在循環(huán)過(guò)程中去掉某個(gè)元素,只能調(diào)用it.remove方法,不能使用list.remove方法 第二種:增強(qiáng)for循環(huán) for(String?? data ?? :??? list)??? {???
?????? .....???
?? }??? 內(nèi)部調(diào)用第一種,換湯不換藥,因此比Iterator慢,這種循環(huán)方式還有其他限制,不建議使用它 第三種: for(int??? i=0;??? i<list.size();??? i++)??? {???
?????? A??? a??? =??? list.get(i);???
?????? ...???
?? }??? 內(nèi)部不鎖定,??? 效率最高,??? 但是遍歷時(shí)list.remove會(huì)導(dǎo)致list的索引發(fā)生變化,所以很容易出現(xiàn)問(wèn)題 結(jié)論:遍歷訪問(wèn):使用for循環(huán) 遍歷移除:使用iterator循環(huán)
?????? ....???
?? }??? 這種方式在循環(huán)執(zhí)行過(guò)程中會(huì)進(jìn)行數(shù)據(jù)鎖定,性能稍差,同時(shí)如果你想在循環(huán)過(guò)程中去掉某個(gè)元素,只能調(diào)用it.remove方法,不能使用list.remove方法 第二種:增強(qiáng)for循環(huán) for(String?? data ?? :??? list)??? {???
?????? .....???
?? }??? 內(nèi)部調(diào)用第一種,換湯不換藥,因此比Iterator慢,這種循環(huán)方式還有其他限制,不建議使用它 第三種: for(int??? i=0;??? i<list.size();??? i++)??? {???
?????? A??? a??? =??? list.get(i);???
?????? ...???
?? }??? 內(nèi)部不鎖定,??? 效率最高,??? 但是遍歷時(shí)list.remove會(huì)導(dǎo)致list的索引發(fā)生變化,所以很容易出現(xiàn)問(wèn)題 結(jié)論:遍歷訪問(wèn):使用for循環(huán) 遍歷移除:使用iterator循環(huán)
轉(zhuǎn)載于:https://www.cnblogs.com/lige-H/p/7404361.html
總結(jié)
以上是生活随笔為你收集整理的转 list三种遍历效率的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CMOS图像传感器——闪烁(flicke
- 下一篇: CMOS图像传感器——图像传感器噪声