JAVA Iterator接口與增強for循環的實現
1 Iterator迭代器
1.1 Iterator接口
java.util.Iterator接口也是Java集合中的一員; Iterator主要用于迭代訪問(即遍歷)Collection中的元素,因此Iterator對象也被稱為迭代器。 public Iterator iterator(): 獲取集合對應的迭代器,用來遍歷集合中的元素。迭代:Collection集合元素的通用獲取方式。在取元素之前先判斷集合中有沒有元素。如果有,就把這個元素取出來;繼續判斷,如果還有就再取出來;就這樣一直把集合中的所有元素全部取出。
1.2 Iterator接口常用方法
public boolean hasNext():如果下一個元素存在,返回 true,否則false; public E next():返回下一個元素。1.3 案例演示
public class Demo { public static void main(String[] args) { // 使用多態方式創建對象 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::如果集合中已經沒有元素了,還繼續使用迭代器的next方法,將會發生java.util.NoSuchElementException沒有集合元素的錯誤。
1.2 迭代器的實現原理
Iterator迭代器對象在遍歷集合時,內部采用指針的方式來跟蹤集合中的元素。在調用Iterator的next方法之前,迭代器的索引位于第一個元素之前,不指向任何元素,當第一次調用迭代器的next方法后,迭代器的索引會向后移動一位,指向第一個元素并將該元素返回,當再次調用next方法時,迭代器的索引會指向第二個元素并將該元素返回,依此類推,直到hasNext方法返回false,表示到達了集合的末尾,終止對元素的遍歷。
2 增強for循環
增強for循環專門用來遍歷數組和Collection,它的內部原理其實是個Iterator迭代器,所以在遍歷的過程中,不能對元素進行增刪操作。
格式:
for(元素的數據類型 變量 : Collection集合or數組){ //寫操作代碼}
示例1:遍歷數組
public class Demo { public static void main(String[] args) { int[] arr = {3,5,6,87}; //使用增強for遍歷數組 for(int a : arr){//a代表數組中的每個元素 System.out.println(a); } }}
35687
示例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循環的實現的文章就介紹到這了,更多相關JAVA Iterator接口與增強for循環內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: