中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Iterator接口遍歷單列集合迭代器的示例分析

發布時間:2021-07-24 14:44:40 來源:億速云 閱讀:141 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“Java中Iterator接口遍歷單列集合迭代器的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java中Iterator接口遍歷單列集合迭代器的示例分析”這篇文章吧。

Iterator接口概述

在程序開發中,經常需要遍歷集合中的所有元素。針對這種需求,JDK專門提供了一個接口java.util.Iterator 。 Iterator 接口也是Java集合中的一員,但它與 Collection 、 Map 接口有所不同,Collection 接口與 Map 接口主要用于存儲元素,而 Iterator 主要用于迭代訪問(即遍歷) Collection 中的元素,因此 Iterator 對象也被稱為迭代器。

迭代的概念

迭代:即Collection集合元素的通用獲取方式。在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來,繼續在判斷,如果還有就再取出出來。一直把集合中的所有元素全部取出。這種取出方式專業術語稱為迭代。

獲取迭代器

Iterator迭代器,是一個接口,我們無法直接使用,需要使用Iterator接口的實現類對象,獲取實現類的方式比較特殊Collection接口中有一個方法,叫iterator(),這個方法返回的就是迭代器的實現類對象Iterator<E> iterator() 返回在此 collection 的元素上進行迭代的迭代器。

public Iterator iterator() : 獲取集合對應的迭代器,用來遍歷集合中的元素的。

Iterator接口的常用方法如下:

public E next() :返回迭代的下一個元素

public boolean hasNext() :如果仍有元素可以迭代,則返回 true。

迭代器的使用步驟

  • 使用集合中的方法iterator()獲取迭代器的實現類對象,使用Iterator接口接收(多態)

  • 使用Iterator接口中的方法hasNext判斷還有沒有下一個元素

  • 使用Iterator接口中的方法next取出集合中的下一個元素

代碼舉例

package demo02;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Demo01Iterator {
  public static void main(String[] args) {
    //創建一個集合對象
    Collection<Integer> coll = new ArrayList<>();
    //往集合中添加元素 自動裝箱
    coll.add(1);
    coll.add(2);
    coll.add(3);
    coll.add(4);
    /*
      1.使用集合中的方法iterator()獲取迭代器的實現類對象,使用Iterator接口接收(多態)
      注意:
        Iterator<E>接口也是有泛型的,迭代器的泛型跟著集合走,集合是什么泛型,迭代器就是什么泛型
     */
    //多態 接口      實現類對象
    Iterator<Integer> it = coll.iterator();
    //2.使用Iterator接口中的方法hasNext判斷還有沒有下一個元素
    while (it.hasNext()) {
      //3.使用Iterator接口中的方法next取出集合中的下一個元素
      System.out.println(it.next());
    }
  }
}

代碼執行后的結果

Java中Iterator接口遍歷單列集合迭代器的示例分析

tips:在進行集合元素取出時,如果集合中已經沒有元素了,還繼續使用迭代器的next方法,將會發生java.util.NoSuchElementException沒有集合元素的錯誤。

迭代器的實現原理

當遍歷集合時,首先通過調用Collection集合的iterator()方法獲得迭代器對象,然后使用hashNext()方法判斷集合中是否存在下一個元素,如果存在,則調用next()方法將元素取出,否則說明已到達了集合末尾,停止遍歷元素。Iterator迭代器對象在遍歷集合時,內部采用指針的方式來跟蹤集合中的元素,為了讓初學者能更好地理解迭代器的工作原理,接下來通過一個圖例來演示Iterator對象迭代元素的過程:

Java中Iterator接口遍歷單列集合迭代器的示例分析

在調用Iterator的next方法之前,迭代器的索引位于第一個元素之前,不指向任何元素,當第一次調用迭代器的next方法后,迭代器的索引會向后移動一位,指向第一個元素并將該元素返回,當再次調用next方法時,迭代器的索引會指向第二個元素并將該元素返回,依此類推,直到hasNext方法返回false,表示到達了集合的末尾,終止對元素的遍歷。

增強for

增強for循環(也稱for each循環)是JDK1.5以后出來的一個高級for循環,專門用來遍歷數組和集合的。它的內部原理其實是個Iterator迭代器,所以在遍歷的過程中,不能對集合中的元素進行增刪操作。 為什么集合和數組都可以使用增強for循環進行遍歷?因為實現了只要實現了Iterable<T>接口就允許對象成為 "foreach" 語句的目標。而Collection<E>extends Iterable<E>這個接口,所以所有的單列集合都可以使用增強for。

作用:

它用于遍歷Collection和數組。通常只進行遍歷元素,不要在遍歷的過程中對集合元素進行增刪操作。

格式:

Java中Iterator接口遍歷單列集合迭代器的示例分析

代碼舉例

遍歷數組

package demo02Iterator;

public class ForArray {
  public static void main(String[] args) {
    int[] arr = {3, 5, 6, 87};
    //使用增強for遍歷數組
    for (int a : arr) {//a代表數組中的每個元素
      System.out.print(a + " ");//3 5 6 87
    }
  }
}

遍歷集合

package demo02Iterator;

import java.util.ArrayList;
import java.util.Collection;

public class ForArrayList {

  public static void main(String[] args) {
    //遍歷集合
    Collection<String> coll = new ArrayList<String>();
    coll.add("小河神");
    coll.add("老河神");
    coll.add("神婆");
    //使用增強for遍歷
    for (String s : coll) {
      //接收變量s代表 代表被遍歷到的集合元
      System.out.print(s + " ");//小河神 老河神 神婆 
    }
  }
}

以上是“Java中Iterator接口遍歷單列集合迭代器的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安岳县| 三明市| 海门市| 汽车| 江孜县| 鹤峰县| 万安县| 阳曲县| 贵德县| 通山县| 峨眉山市| 苏州市| 静宁县| 隆尧县| 张家界市| 琼中| 荃湾区| 英山县| 肥城市| 沐川县| 邹平县| 恩平市| 监利县| 万载县| 奉贤区| 墨玉县| 镇康县| 郁南县| 扎赉特旗| 和政县| 天峨县| 石狮市| 辽宁省| 陕西省| 邳州市| 沾益县| 监利县| 渝北区| 故城县| 安仁县| 潞西市|