Java中增強(qiáng)for循環(huán)代碼示例
增強(qiáng)for循環(huán)(Enhanced for loop),也被稱為for-each循環(huán),是一種簡(jiǎn)化遍歷數(shù)組和集合元素的語(yǔ)法結(jié)構(gòu)。它可以遍歷數(shù)組、集合或其他實(shí)現(xiàn)了Iterable接口的數(shù)據(jù)結(jié)構(gòu)。
增強(qiáng)for循環(huán)的語(yǔ)法結(jié)構(gòu)如下:
for (元素類型 變量名 : 需要遍歷的數(shù)組或集合) { // 進(jìn)行操作 }
其中,元素類型表示數(shù)組或集合中元素的類型,變量名表示每次迭代中獲取到的當(dāng)前元素的值。在循環(huán)體中,可以直接使用變量名訪問(wèn)當(dāng)前的元素,并執(zhí)行相應(yīng)的操作。增強(qiáng)for循環(huán)的優(yōu)點(diǎn)是簡(jiǎn)潔、易讀,并且能夠避免索引操作,適用于不需要修改數(shù)組或集合元素的情況。
以下是一個(gè)示例,展示如何使用增強(qiáng)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("測(cè)試");
names.add("你好");
for (String name : names) {
System.out.println(name);
}在上述示例中,第一個(gè)循環(huán)使用增強(qiáng)for循環(huán)遍歷整型數(shù)組numbers,并將每個(gè)元素打印出來(lái)。第二個(gè)循環(huán)使用增強(qiáng)for循環(huán)遍歷字符串類型的ArrayList集合names,同樣將每個(gè)元素打印出來(lái)。需要注意的是,增強(qiáng)for循環(huán)不能對(duì)集合進(jìn)行修改(添加、刪除等)。如果需要在循環(huán)過(guò)程中對(duì)集合進(jìn)行操作,仍然需要使用迭代器或傳統(tǒng)的for循環(huán)。
增強(qiáng)for循環(huán)適用于只需要訪問(wèn)數(shù)組或集合中的每個(gè)元素,并且不需要索引或迭代器的情況。它提供了一種簡(jiǎn)潔而直觀的方式來(lái)遍歷數(shù)組或集合中的元素。需要注意的是,增強(qiáng)for循環(huán)是只讀的,即不能通過(guò)它來(lái)修改數(shù)組或集合中的元素。如果需要修改元素,仍然需要使用傳統(tǒng)的for循環(huán)或迭代器來(lái)完成。
附:定制自己的增強(qiáng)for循環(huán)
眾所周知,增強(qiáng)for循環(huán)是按數(shù)組或者集合的內(nèi)在順序輸出的,如果我們想在遍歷的時(shí)候定制行為怎么做呢?下面就以一個(gè)逆序輸出的例子說(shuō)明怎么定制自己的增強(qiáng)for循環(huán)。
要想使用增強(qiáng)for循環(huán),必須實(shí)現(xiàn)Iterable接口。
import java.util.Iterator;
/**
* 一個(gè)簡(jiǎn)單的逆序輸出增強(qiáng)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);
}
}
}在這個(gè)程序里我們定制了自己的輸出行為--逆序輸出,當(dāng)然你也可以定義屬于你自己的,只需要在next()函數(shù)里寫(xiě)處理代碼即可。
總結(jié)
到此這篇關(guān)于Java中增強(qiáng)for循環(huán)代碼示例的文章就介紹到這了,更多相關(guān)Java 增強(qiáng)for循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中properties文件中的中文亂碼問(wèn)題
Properties為了方便用戶的配置,用于讀取Java的配置文件,不同的編程語(yǔ)言有自己所支持的配置文件,能讓用戶夠脫離程序本身去修改相關(guān)的變量設(shè)置,這篇文章主要介紹了Java中properties文件中的中文亂碼問(wèn)題,需要的朋友可以參考下2023-08-08
Java開(kāi)發(fā)HashMap?key必須實(shí)現(xiàn)hashCode?equals方法原理
這篇文章主要為大家介紹了Java開(kāi)發(fā)HashMap?key必須實(shí)現(xiàn)hashCode?equals方法原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Java多線程應(yīng)用循環(huán)輸出ABC方式
這篇文章主要介紹了Java多線程應(yīng)用循環(huán)輸出ABC方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
java?AES加密/解密實(shí)現(xiàn)完整代碼(附帶源碼)
這篇文章主要介紹了java?AES加密/解密實(shí)現(xiàn)的相關(guān)資料,包括AES加密算法的基本原理、Java加密API的使用方法以及項(xiàng)目實(shí)現(xiàn)的步驟和代碼示例,需要的朋友可以參考下2025-04-04
Java調(diào)用Oss JDk實(shí)現(xiàn)刪除指定目錄下的所有文件
這篇文章主要為大家詳細(xì)介紹了Java如何調(diào)用Oss JDk實(shí)現(xiàn)刪除指定目錄下的所有文件功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2025-03-03
SpringBoot項(xiàng)目中使用@Scheduled讀取動(dòng)態(tài)參數(shù)
這篇文章主要介紹了SpringBoot項(xiàng)目中使用@Scheduled讀取動(dòng)態(tài)參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
springboot接口參數(shù)為L(zhǎng)ist的問(wèn)題
這篇文章主要介紹了springboot接口參數(shù)為L(zhǎng)ist的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
使用jpa的時(shí)候set實(shí)體類屬性自動(dòng)持久化的解決方案
這篇文章主要介紹了使用jpa的時(shí)候set實(shí)體類屬性自動(dòng)持久化的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

