Java中增強for循環(huán)代碼示例
增強for循環(huán)(Enhanced for loop),也被稱為for-each循環(huán),是一種簡化遍歷數(shù)組和集合元素的語法結(jié)構(gòu)。它可以遍歷數(shù)組、集合或其他實現(xiàn)了Iterable接口的數(shù)據(jù)結(jié)構(gòu)。
增強for循環(huán)的語法結(jié)構(gòu)如下:
for (元素類型 變量名 : 需要遍歷的數(shù)組或集合) { // 進行操作 }
其中,元素類型表示數(shù)組或集合中元素的類型,變量名表示每次迭代中獲取到的當(dāng)前元素的值。在循環(huán)體中,可以直接使用變量名訪問當(dāng)前的元素,并執(zhí)行相應(yīng)的操作。增強for循環(huán)的優(yōu)點是簡潔、易讀,并且能夠避免索引操作,適用于不需要修改數(shù)組或集合元素的情況。
以下是一個示例,展示如何使用增強for循環(huán)遍歷數(shù)組和集合:
//數(shù)組 int[] numbers = {1, 2, 3, 4, 5}; for (int number : numbers) { System.out.println(number); } //集合 ArrayList<String> names = new ArrayList<>(); names.add("測試"); names.add("你好"); for (String name : names) { System.out.println(name); }
在上述示例中,第一個循環(huán)使用增強for循環(huán)遍歷整型數(shù)組numbers
,并將每個元素打印出來。第二個循環(huán)使用增強for循環(huán)遍歷字符串類型的ArrayList集合names
,同樣將每個元素打印出來。需要注意的是,增強for循環(huán)不能對集合進行修改(添加、刪除等)。如果需要在循環(huán)過程中對集合進行操作,仍然需要使用迭代器或傳統(tǒng)的for循環(huán)。
增強for循環(huán)適用于只需要訪問數(shù)組或集合中的每個元素,并且不需要索引或迭代器的情況。它提供了一種簡潔而直觀的方式來遍歷數(shù)組或集合中的元素。需要注意的是,增強for循環(huán)是只讀的,即不能通過它來修改數(shù)組或集合中的元素。如果需要修改元素,仍然需要使用傳統(tǒng)的for循環(huán)或迭代器來完成。
附:定制自己的增強for循環(huán)
眾所周知,增強for循環(huán)是按數(shù)組或者集合的內(nèi)在順序輸出的,如果我們想在遍歷的時候定制行為怎么做呢?下面就以一個逆序輸出的例子說明怎么定制自己的增強for循環(huán)。
要想使用增強for循環(huán),必須實現(xiàn)Iterable接口。
import java.util.Iterator; /** * 一個簡單的逆序輸出增強for循環(huán) * @author * */ public class ReverIterableClass<T> implements Iterable<T> { protected T[] elements; public ReverIterableClass(T... elems) { this.elements=elems; //this.object=(T[])new Object[ts.length]; } public Iterator<T> iterator() { return new Iterator<T>(){ private int current=elements.length-1; public boolean hasNext() { return current>-1; } public T next() { return elements[current--]; } public void remove() { throw new UnsupportedOperationException("目前不支持刪除操作"); } }; } public static void main(String[] args){ ReverIterableClass<String> iterableClass=new ReverIterableClass<String>("a","b","c","d"); for(String s:iterableClass){ System.out.println(s); } } }
在這個程序里我們定制了自己的輸出行為--逆序輸出,當(dāng)然你也可以定義屬于你自己的,只需要在next()函數(shù)里寫處理代碼即可。
總結(jié)
到此這篇關(guān)于Java中增強for循環(huán)代碼示例的文章就介紹到這了,更多相關(guān)Java 增強for循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java微信二次開發(fā)(一) Java微信請求驗證功能
這篇文章主要為大家詳細(xì)介紹了Java微信二次開發(fā)第一篇,Java微信請求驗證功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04GraalVM系列Native?Image?Basics靜態(tài)分析
這篇文章主要為大家介紹了GraalVM系列Native?Image?Basics靜態(tài)分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02java8如何用Stream查List對象某屬性是否有重復(fù)
這篇文章主要介紹了java8如何用Stream查List對象某屬性是否有重復(fù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09SpringAop自定義切面注解、自定義過濾器及ThreadLocal詳解
這篇文章主要介紹了SpringAop自定義切面注解、自定義過濾器及ThreadLocal詳解,Aspect(切面)通常是一個類,里面可以定義切入點和通知(切面 = 切點+通知),execution()是最常用的切點函數(shù),需要的朋友可以參考下2024-01-01如何利用Spring?MVC實現(xiàn)RESTful風(fēng)格
這篇文章主要介紹了如何利用Spring?MVC實現(xiàn)RESTful風(fēng)格,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02