java foreach用法 foreach和for的區(qū)別?
foreach和for的區(qū)別?對(duì)于loop-For-loop,通過下標(biāo),循環(huán)中的代碼被重復(fù)執(zhí)行,功能強(qiáng)大,可以通過索引獲取元素。它更方便處理更復(fù)雜的處理。Foreach循環(huán)Foreach自始至終遍歷集
foreach和for的區(qū)別?
對(duì)于loop-For-loop,通過下標(biāo),循環(huán)中的代碼被重復(fù)執(zhí)行,功能強(qiáng)大,可以通過索引獲取元素。它更方便處理更復(fù)雜的處理。Foreach循環(huán)Foreach自始至終遍歷集合中的對(duì)象。它適用于簡(jiǎn)單的遍歷。使用foreach時(shí),集合的對(duì)象將被鎖定,在此期間不能修改。與for循環(huán)相比,select foreach的使用減少了代碼,但是foreach依賴于IEnumerable。運(yùn)行時(shí),效率低于for-loop。當(dāng)然,在處理循環(huán)數(shù)不確定的循環(huán)時(shí),或者需要計(jì)算循環(huán)數(shù)的時(shí)候。Foreach使用方便。此外,通過編譯系統(tǒng)對(duì)foreach的代碼進(jìn)行了優(yōu)化,類似于for循環(huán)??梢哉fforeach語句是for語句的一個(gè)特殊簡(jiǎn)化版本。在遍歷數(shù)組和集合時(shí),foreach為開發(fā)人員提供了極大的便利。在復(fù)雜的環(huán)路設(shè)計(jì)中,還是應(yīng)該采用較為靈活的for環(huán)路。
深入foreach和for循環(huán)的區(qū)別?
Foreach依賴于IEnumerable。第一次調(diào)用getlist()中的var a時(shí),GetEnumerator返回第一個(gè)對(duì)象并將其分配給,然后每次執(zhí)行g(shù)etlist()中的var a時(shí)都調(diào)用MoveNext,直到循環(huán)結(jié)束。在此期間,getlist()方法只執(zhí)行一次。For循環(huán)由下標(biāo)定位。列表[3]相當(dāng)于*(列表3)。For循環(huán)調(diào)用getcount(),但foreach不考慮長(zhǎng)度,只調(diào)用getlist()一次。結(jié)論。當(dāng)長(zhǎng)度固定或不需要計(jì)算時(shí),for循環(huán)的效率高于foreach循環(huán)。當(dāng)長(zhǎng)度不確定或長(zhǎng)度有性能損失時(shí),使用foreach更為方便。此外,使用foreach時(shí),集合中的對(duì)象將被鎖定。期間不能修改
目前,JDK已經(jīng)達(dá)到j(luò)dk14,而國(guó)內(nèi)大部分公司仍然使用JDK7到j(luò)dk9。隨著版本更新,該功能將得到增強(qiáng)。那么為什么許多程序員不想升級(jí)到最新版本呢?下面讓我談?wù)勎业膫€(gè)人想法:
1。有些舊系統(tǒng)需要持續(xù)維護(hù)。它的可擴(kuò)展性和性能問題不大,只需要一些小的修改。在這種情況下,主要是追求穩(wěn)定,升級(jí)不僅是JDK升級(jí),更是配套升級(jí),這需要人力物力成本。不過,升級(jí)帶來的好處并不多。在這種情況下,考慮到升級(jí)的成本和好處,大多數(shù)用戶不會(huì)選擇升級(jí)JDK。
2. JDK7到j(luò)dk9在中國(guó)被廣泛使用。它們非常成熟,幾乎可以滿足開發(fā)要求。它們相對(duì)穩(wěn)定,程序員也非常熟練地使用它們。有些程序員追求穩(wěn)定性,對(duì)新技術(shù)有一定的抵觸情緒。他們認(rèn)為舊的JDK在很多項(xiàng)目中都使用過,他們有實(shí)踐和經(jīng)驗(yàn)。對(duì)于新版本的JDK升級(jí),你需要了解成本,而且你害怕升級(jí)后不兼容的風(fēng)險(xiǎn),所以你會(huì)選擇你比較熟悉的版本應(yīng)用。
從成本和收益、學(xué)習(xí)成本和穩(wěn)定性的角度討論了不升級(jí)JDK版本的原因。
讓我們談?wù)勎业膫€(gè)人經(jīng)歷。軟件開發(fā)不能由個(gè)人完成,團(tuán)隊(duì)合作的前提是環(huán)境和工具的一致性。團(tuán)隊(duì)中的JDK版本必須一致。當(dāng)個(gè)人想要升級(jí)到最新版本時(shí),團(tuán)隊(duì)的其他成員也需要升級(jí)。雖然新版JDK的一些特性非常吸引人,但實(shí)際項(xiàng)目中應(yīng)用的新特性并不多,需要所有團(tuán)隊(duì)成員的學(xué)習(xí)成本。對(duì)于有新項(xiàng)目的充滿活力的團(tuán)隊(duì),我認(rèn)為領(lǐng)導(dǎo)者可以帶頭嘗試更多的新技術(shù)應(yīng)用。如果我們想把工作做好,我們必須首先磨礪我們的工具。掌握一些新特性可以提高我們的開發(fā)效率。但同時(shí),我們不能追趕新的,我們還需要考慮制度、環(huán)境、成本等。
以上是我個(gè)人的一些看法,希望能對(duì)您有所幫助。