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