国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java基礎(chǔ)教程】(二十二)Java新特性篇 · 第二講:foreach循環(huán)——概念及優(yōu)缺點、使用方式及應(yīng)用場景~

這篇具有很好參考價值的文章主要介紹了【Java基礎(chǔ)教程】(二十二)Java新特性篇 · 第二講:foreach循環(huán)——概念及優(yōu)缺點、使用方式及應(yīng)用場景~。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【Java基礎(chǔ)教程】(二十二)Java新特性篇 · 第二講:foreach循環(huán)——概念及優(yōu)缺點、使用方式及應(yīng)用場景~,# Java基礎(chǔ)教程,java,開發(fā)語言,后端,java-ee,intellij-idea

1?? 概念

Java的 foreach 特性最初出現(xiàn)在JDK 1.5中,也被稱為“增強的for循環(huán)”。它的設(shè)計目的是提供一種簡潔、易讀的語法,用于遍歷集合或數(shù)組中的元素,減少了傳統(tǒng) for循環(huán)的冗余代碼和錯誤機會。

簡單來說,foreach是一種迭代器模式的變體,它允許我們以簡單且直觀的方式遍歷一個集合或數(shù)組中的元素,并對每個元素執(zhí)行相應(yīng)的操作。foreach語句使用起來更加直觀,使代碼更易于理解和維護。

下面先來回顧一下傳統(tǒng)數(shù)組輸出的操作形式。

//	范例 1: 數(shù)組輸出
package com.xiaoshan.demo;

public class TestDemo{
	public static void main(String args[]){
		int data[] = new int[]{1,2,3,4,5};
		for (int x=0; x<data.length; x++){
			System.out.print(data[x] + "、");
		}
	}
}

程序執(zhí)行結(jié)果:

1、2、3、4、5、

在傳統(tǒng)的數(shù)組輸出操作中,往往會使用 for 循環(huán)來控制索引的下標,從而實現(xiàn)數(shù)據(jù)的輸出操作。但一部分開發(fā)者會認為這樣的輸出方式需要控制索引,過于麻煩,更希望能夠簡化一些。所以從 JDK 1.5開始對于for 循環(huán)有了以下形式:

for (element_type element : collection) {
    // 在此處執(zhí)行針對 element 的操作
}

語法中,element_type 是集合或數(shù)組中元素的類型, element 表示在每次循環(huán)迭代時訪問的元素,collection則表示要遍歷的數(shù)組或集合,在每一次循環(huán)時會自動的將數(shù)組的內(nèi)容設(shè)置給變量。此時的 for 循環(huán)操作在每次循環(huán)時會自動將當前數(shù)組(或集合)的內(nèi)容依次取出,這樣就可以避免索引問題。

//	范例 2: 利用foreach循環(huán)實現(xiàn)輸出
package com.xiaoshan.demo;

public class TestDemo {  
	public static void main(Stringl args[]){
		int data[] = new int[]{1,2,3,4,5};	//定義數(shù)組
		for (int x : data){               	//循環(huán)次數(shù)由數(shù)組長度決定
		//每一次循環(huán)實際上都表示數(shù)組的角標增長,會取得每一個數(shù)組的內(nèi)容,并且將其設(shè)置給x 
			System.out.println( x + "、");	 //x  就是每一個數(shù)組元素的內(nèi)容
		}
	}
}

程序執(zhí)行結(jié)果:

1、2、3、4、5、

2?? 優(yōu)勢和缺點

優(yōu)點:

  • 語法簡潔:foreach提供了一種緊湊的語法,減少了傳統(tǒng)for循環(huán)的代碼量;
  • 避免了索引越界錯誤:foreach內(nèi)部使用迭代器實現(xiàn),能夠自動處理集合或數(shù)組的邊界情況,避免了常見的越界錯誤;
  • 提高可讀性:foreach語法可讀性高,更符合自然語言描述集合遍歷的過程。

缺點:

  • 無法修改集合/數(shù)組長度:由于foreach底層使用迭代器,無法在遍歷過程中修改集合或數(shù)組的長度;
  • 無法獲取當前元素的索引:foreach循環(huán)中無法直接訪問當前元素的索引,需要通過其他方式解決。

3?? 使用及應(yīng)用場景

  • 遍歷數(shù)組:

    // 范例 3: foreach 遍歷數(shù)組
    package com.xiaoshan.demo;
    
    public class TestDemo {  
    	public static void main(String args[]){
    		int[] numbers = {1, 2, 3, 4, 5};
    	  	for(int number : numbers) {
    	      	System.out.println(number);
    	  	}
    	}
    }
    
  • 遍歷集合:

    // 范例 4: foreach 遍歷集合
    package com.xiaoshan.demo;
    
    public class TestDemo {  
    	public static void main(String args[]){
    		List<String> fruits = Arrays.asList("apple", "banana", "cherry");
    		for (String fruit : fruits) {
          		System.out.println(fruit);
      		}
    	}
    }
    
  • 遍歷自定義類型集合:

    // 范例 5: foreach 遍歷自定義類型集合
    package com.xiaoshan.demo;
    
    class Person {
    	String name;
        public Person(String name){
    		this.name = name;
    	}  
    	// getter和setter等代碼省略
    }
    
    public class TestDemo {  
    	public static void main(String args[]){
    		List<Person> people = new ArrayList<>();
    		  // 添加Person對象到people集合
    		  people.add(new Person("張三"));
    		  people.add(new Person("王五"));
    		  for (Person person : people) {
    		      System.out.println(person.getName());
    		  }
    	}
    }  
    
  • 使用帶有索引的foreach循環(huán):

    // 范例 6: 帶有索引的foreach 遍歷
    package com.xiaoshan.demo;
    
    public class TestDemo {  
    	public static void main(String args[]){
    		String[] fruits = {"apple", "banana", "cherry"};
    	  	int index = 0;
    	  	for (String fruit : fruits) {
    	      	System.out.println(index + ": " + fruit);
    	      	index++;
    	  	}
    	}
    }
    

需要注意的是,范例6是通過借助 index變量,手動維護索引計數(shù)。

從以上案例可以發(fā)現(xiàn),foreach 適用于各種遍歷集合或數(shù)組的場景,特別是當我們只需要訪問元素而不修改集合時,foreach提供了一種簡潔的方式。

常見的應(yīng)用場景主要包括:

  • 遍歷集合進行數(shù)據(jù)處理、過濾或打印。
  • 對數(shù)組執(zhí)行元素計數(shù)、求和等操作。
  • 針對自定義類型集合進行持久化、轉(zhuǎn)換等處理。

而在使用foreach循環(huán)時,需要注意的是,foreach 循環(huán)中不能修改集合/數(shù)組的長度,否則會拋出 ConcurrentModificationException 并發(fā)修改異常。如果需要同時訪問索引和元素,可以通過其他方式實現(xiàn)(如使用額外的計數(shù)器變量)。

?? 總結(jié)

本文中,我們詳細介紹了Java的 foreach特性,從它的起源、概念,到優(yōu)缺點、特征和基礎(chǔ)語法進行了全面講解。我們還提供了豐富的代碼案例來演示其使用技巧,并探討了foreach的應(yīng)用場景和注意事項。

通過合理地運用foreach特性,能夠使代碼更加簡潔、易讀,并且避免常見的錯誤。在日常開發(fā)中,我們建議熟練掌握foreach的用法,以便更高效地處理集合或數(shù)組的遍歷操作。


? 溫習(xí)回顧上一篇(點擊跳轉(zhuǎn))《【Java基礎(chǔ)教程】(二十一)Java新特性篇 · 第一講:可變參數(shù)——概念及優(yōu)缺點、特征及應(yīng)用場景、使用技巧、構(gòu)建動態(tài)日志工具實踐~》

? 繼續(xù)閱讀下一篇(點擊跳轉(zhuǎn))《【Java基礎(chǔ)教程】(二十三)Java新特性篇 · 第三講:泛型 Generics——泛型使用方式、通配符、類型擦除機制,對協(xié)變和逆變的支持 ~》
文章來源地址http://www.zghlxwxcb.cn/news/detail-602178.html

【Java基礎(chǔ)教程】(二十二)Java新特性篇 · 第二講:foreach循環(huán)——概念及優(yōu)缺點、使用方式及應(yīng)用場景~,# Java基礎(chǔ)教程,java,開發(fā)語言,后端,java-ee,intellij-idea

到了這里,關(guān)于【Java基礎(chǔ)教程】(二十二)Java新特性篇 · 第二講:foreach循環(huán)——概念及優(yōu)缺點、使用方式及應(yīng)用場景~的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 第二章:25+ Python 數(shù)據(jù)操作教程(第二十二節(jié)如何從 R 調(diào)用或運行 python)持續(xù)更新

    第二章:25+ Python 數(shù)據(jù)操作教程(第二十二節(jié)如何從 R 調(diào)用或運行 python)持續(xù)更新

    本文介紹了如何從 R 調(diào)用或運行 python。這兩種工具都有自己的優(yōu)點和缺點。使用這兩個工具中最好的包和功能并將其組合起來總是一個好主意。在數(shù)據(jù)科學(xué)領(lǐng)域,這些工具在使用方面擁有良好的市場份額。R 主要以數(shù)據(jù)分析、統(tǒng)計建模和可視化而聞名。而Python在深度學(xué)習(xí)和自

    2024年02月07日
    瀏覽(29)
  • 【Java基礎(chǔ)教程】(二十六)Java新特性篇 · 第六講:注解——解碼程序設(shè)計中的元數(shù)據(jù)利器,用小小的@符里做大大的開發(fā)~

    【Java基礎(chǔ)教程】(二十六)Java新特性篇 · 第六講:注解——解碼程序設(shè)計中的元數(shù)據(jù)利器,用小小的@符里做大大的開發(fā)~

    Java 注解(Annotation) 是Java語言中一種元數(shù)據(jù)形式,它提供了一種在代碼中添加元數(shù)據(jù)的方式。注解為程序員提供了向代碼中添加額外信息的能力,這些額外信息可以被編譯器、工具或者運行時環(huán)境使用。 優(yōu)點: 提供了一種 更加簡潔和可讀性強 的代碼編寫風(fēng)格; 增強代碼的

    2024年02月16日
    瀏覽(22)
  • Java基礎(chǔ)二十二(對集合元素排序比較)

    1. 使用 Comparable 接口實現(xiàn)默認排序 Comparable 是 Java 中的一個接口,用于定義對象之間的排序規(guī)則。 實現(xiàn)了 Comparable 接口的類可以比較其對象的大小(包裝類都實現(xiàn)了該接口),從而可以在集合類(如 TreeSet、TreeMap 等)中進行排序和查找操作。這種排序被稱為類的自然排序,

    2024年02月10日
    瀏覽(23)
  • 第二十二章 光照貼圖

    第二十二章 光照貼圖

    光照貼圖過程將預(yù)先計算場景中靜態(tài)物體表面的亮度,并將結(jié)果存儲在稱為“光照貼圖”的紋理中供以后使用。光照貼圖可以包含直接光照和間接光照,以及陰影效果。但是,烘焙到光照貼圖中的數(shù)據(jù)無法在運行時更改,這就是為什么移動靜態(tài)物體后,陰影不會跟隨移動。接

    2024年02月02日
    瀏覽(38)
  • 線代基礎(chǔ)第二講——矩陣

    線代基礎(chǔ)第二講——矩陣

    基礎(chǔ)知識結(jié)構(gòu) ? 求矩陣的逆: 1.定義 2.用伴隨矩陣求逆矩陣 3.用初等變換求逆矩陣 這就是讀者對矩陣的初步認識——表達系統(tǒng)信息(systematical information) 再看一個矩陣: 重要觀點1:矩陣是由若干行(列)向量拼成的——上面那個矩陣可以看作是由三個行向量[1,2,3],[5,7,9]和

    2024年02月14日
    瀏覽(27)
  • 【Vue3 知識第二講】Vue3新特性、vue-devtools 調(diào)試工具、腳手架搭建

    【Vue3 知識第二講】Vue3新特性、vue-devtools 調(diào)試工具、腳手架搭建

    1.1 重寫雙向數(shù)據(jù)綁定 1.1.1 Vue2 基于Object.defineProperty() 實現(xiàn) 數(shù)字化管理平臺 Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus 權(quán)限系統(tǒng)-商城 個人博客地址 把 Vue 中的核心方法 defineReactive 做一些簡化如下: Vue通過defineReactive方法實現(xiàn)對需要觀察的對象的每個屬性進行監(jiān)控。dep對象就相當于一

    2024年02月10日
    瀏覽(17)
  • 第二十二章 Unity 光照貼圖

    第二十二章 Unity 光照貼圖

    光照貼圖過程將預(yù)先計算場景中靜態(tài)物體表面的亮度,并將結(jié)果存儲在稱為“光照貼圖”的紋理中供以后使用。光照貼圖可以包含直接光照和間接光照,以及陰影效果。但是,烘焙到光照貼圖中的數(shù)據(jù)無法在運行時更改,這就是為什么移動靜態(tài)物體后,陰影不會跟隨移動。接

    2024年02月04日
    瀏覽(23)
  • STP和MTP(第二十二課)

    2、如何實現(xiàn) 1)在MSTP網(wǎng)絡(luò)種,引入了域的概念,稱為MST域 2)每一個MST域中包含一個或多個“生成樹”稱為“實例” 3)每個“實例生成樹”都可以綁定vlan,實現(xiàn)vlan數(shù)據(jù)流的負載分擔/負載均衡 4)默認情況下,所有的vlan都屬于“實例樹0:即:instance 0” 5)不同的“實例樹”、

    2024年02月15日
    瀏覽(24)
  • Redis 7 第二講 數(shù)據(jù)類型 基礎(chǔ)篇

    Redis 7 第二講 數(shù)據(jù)類型 基礎(chǔ)篇

    Commands | Redis https://redis.io/commands/ Redis命令中心(Redis commands) -- Redis中國用戶組(CRUG) Redis命令大全,顯示全部已知的redis命令,redis集群相關(guān)命令,近期也會翻譯過來,Redis命令參考,也可以直接輸入命令進行命令檢索。 http://www.redis.cn/commands.html 注:命令不區(qū)分大小寫 KEYS

    2024年02月11日
    瀏覽(24)
  • ArduinoUNO實戰(zhàn)-第二十二章-紅外遙控實驗

    ArduinoUNO實戰(zhàn)-第二十二章-紅外遙控實驗

    Arduino基礎(chǔ)入門篇25—紅外遙控 Arduino與紅外遙控握手 在日常生活中我們會接觸到各式各樣的遙控器,電視機、空調(diào)、機頂盒等都有專用的遙控器,很多智能手機也在軟硬件上對紅外遙控做了支持,可以集中遙控絕大部分家用電器。 當按下遙控器上某個按鍵,串口輸出該按鍵的

    2024年02月16日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包