日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的。

發布時間:2025/4/16 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JDK源碼解析

迭代器模式在JAVA的很多集合類中被廣泛應用,接下來看看JAVA源碼中是如何使用迭代器模式的。

看完這段代碼是不是很熟悉,與我們上面代碼基本類似。單列集合都使用到了迭代器,我們以ArrayList舉例來說明

  • List:抽象聚合類
  • ArrayList:具體的聚合類
  • Iterator:抽象迭代器
  • list.iterator():返回的是實現了?Iterator?接口的具體迭代器對象

具體的來看看 ArrayList的代碼實現

public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, java.io.Serializable {public Iterator<E> iterator() {return new Itr();}private class Itr implements Iterator<E> {int cursor; // 下一個要返回元素的索引int lastRet = -1; // 上一個返回元素的索引int expectedModCount = modCount; ?Itr() {}//判斷是否還有元素public boolean hasNext() {return cursor != size;} ?//獲取下一個元素public E next() {checkForComodification();int i = cursor;if (i >= size)throw new NoSuchElementException();Object[] elementData = ArrayList.this.elementData;if (i >= elementData.length)throw new ConcurrentModificationException();cursor = i + 1;return (E) elementData[lastRet = i];}... }

這部分代碼還是比較簡單,大致就是在?iterator?方法中返回了一個實例化的?Iterator?對象。Itr是一個內部類,它實現了?Iterator?接口并重寫了其中的抽象方法。

注意:

當我們在使用JAVA開發的時候,想使用迭代器模式的話,

只要讓我們自己定義的容器類實現java.util.Iterable并實現其中的 iterator() 方法

使其返回一個?java.util.Iterator?的實現類就可以了。

總結

以上是生活随笔為你收集整理的JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。