JAVA Iterator接口與增強for循環(huán)的實現(xiàn)
1 Iterator迭代器
1.1 Iterator接口
- java.util.Iterator接口也是Java集合中的一員;
- Iterator主要用于迭代訪問(即遍歷)Collection中的元素,因此Iterator對象也被稱為迭代器。
- public Iterator iterator(): 獲取集合對應的迭代器,用來遍歷集合中的元素。
迭代:Collection集合元素的通用獲取方式。在取元素之前先判斷集合中有沒有元素。如果有,就把這個元素取出來;繼續(xù)判斷,如果還有就再取出來;就這樣一直把集合中的所有元素全部取出。
1.2 Iterator接口常用方法
- public boolean hasNext():如果下一個元素存在,返回 true,否則false;
- public E next():返回下一個元素。
1.3 案例演示
public class Demo {
public static void main(String[] args) {
// 使用多態(tài)方式創(chuàng)建對象
Collection<String> sg = new ArrayList<String>();
// 添加元素到集合
sg.add("劉備");
sg.add("關羽");
sg.add("張飛");
//使用迭代器進行遍歷
Iterator<String> it = sg.iterator();
while(it.hasNext()){
String s = it.next();
System.out.println(s);
}
}
}
劉備
關羽
張飛
tips::如果集合中已經沒有元素了,還繼續(xù)使用迭代器的next方法,將會發(fā)生java.util.NoSuchElementException沒有集合元素的錯誤。
1.2 迭代器的實現(xiàn)原理
Iterator迭代器對象在遍歷集合時,內部采用指針的方式來跟蹤集合中的元素。
在調用Iterator的next方法之前,迭代器的索引位于第一個元素之前,不指向任何元素,當?shù)谝淮握{用迭代器的next方法后,迭代器的索引會向后移動一位,指向第一個元素并將該元素返回,當再次調用next方法時,迭代器的索引會指向第二個元素并將該元素返回,依此類推,直到hasNext方法返回false,表示到達了集合的末尾,終止對元素的遍歷。
2 增強for循環(huán)
增強for循環(huán)專門用來遍歷數(shù)組和Collection,它的內部原理其實是個Iterator迭代器,所以在遍歷的過程中,不能對元素進行增刪操作。
格式:
for(元素的數(shù)據(jù)類型 變量 : Collection集合or數(shù)組){
//寫操作代碼
}
示例1:遍歷數(shù)組
public class Demo {
public static void main(String[] args) {
int[] arr = {3,5,6,87};
//使用增強for遍歷數(shù)組
for(int a : arr){//a代表數(shù)組中的每個元素
System.out.println(a);
}
}
}
3
5
6
87
示例2:遍歷集合
public class Demo {
public static void main(String[] args) {
Collection<String> sg = new ArrayList<String>();
sg.add("劉備");
sg.add("關羽");
sg.add("張飛");
//使用增強for遍歷
for(String s :sg){//接收變量s代表 代表被遍歷到的集合元素
System.out.println(s);
}
}
}
劉備
關羽
張飛
到此這篇關于JAVA Iterator接口與增強for循環(huán)的實現(xiàn)的文章就介紹到這了,更多相關JAVA Iterator接口與增強for循環(huán)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring?IOC容器Bean管理的完全注解開發(fā)放棄配置文件
這篇文章主要為大家介紹了Spring?IOC容器的Bean管理完全注解開發(fā)放棄配置文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
在CentOS上安裝Java 17并實現(xiàn)多版本共存的詳細教程
在現(xiàn)代軟件開發(fā)中,Java 作為一種廣泛使用的編程語言,其版本更新頻繁,不同項目可能依賴不同版本的 Java 運行環(huán)境,CentOS 作為一款流行的 Linux 發(fā)行版,常被用于服務器部署和開發(fā)環(huán)境,本文將詳細介紹如何在 CentOS 上安裝 Java 17,并實現(xiàn)與現(xiàn)有 Java 8 的多版本共存2025-03-03
Java初級必看的數(shù)據(jù)類型與常量變量知識點
這篇文章主要給大家介紹了關于Java初級必看的數(shù)據(jù)類型與常量變量知識點的相關資料,需要的朋友可以參考下2023-11-11

