1. 程式人生 > 程式設計 >JAVA Iterator介面與增強for迴圈的實現

JAVA Iterator介面與增強for迴圈的實現

1 Iterator迭代器

1.1 Iterator介面

  1. java.util.Iterator介面也是Java集合中的一員;
  2. Iterator主要用於迭代訪問(即遍歷)Collection中的元素,因此Iterator物件也被稱為迭代器。
  3. 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);
 }
 }
}

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迴圈的實現的文章就介紹到這了,更多相關JAVA Iterator介面與增強for迴圈內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!