JDK原始碼閱讀 集合框架 Iterator介面

2021-09-24 00:13:01 字數 510 閱讀 7628

迭代器(iterator)模式,又叫做游標(cursor)模式。gof給出的定義為:提供一種方法訪問乙個容器(container)物件中各個元素,而又不需暴露該物件的內部細節。 從定義可見,迭代器模式是為容器而生。很明顯,對容器物件的訪問必然涉及到遍歷演算法。你可以一股腦的將遍歷方法塞到容器物件中去;或者根本不去提供什麼遍歷演算法,讓使用容器的人自己去實現去吧。這兩種情況好像都能夠解決問題。

你明白了嗎?(反正我沒看懂迭代器到底是個啥,貌似就是乙個通用訪問集合的方式,快速,安全,便捷)

boolean hasnext();
判斷迭代器物件是否還有下乙個元素。有的話返回true,沒有的話返回false

e next();
返回迭代器物件中的下乙個元素。如果後面沒有元素了,丟擲異常

default void remove()
預設的刪除迭代器最後乙個元素的方法。一般來說由實現類自行實現。如果不實現,會丟擲異常

JDK原始碼閱讀 集合框架 List介面

list介面是collection介面最重要的兒子之一,也是我們常用的arrrylist類的超級老父親的老父親的老父親的。老父親。先看他的定義 public inte ce listextends collectionlist介面有以下特點,也就是說他的實現類有以下特徵,大家使用的時候注意 list...

JDK原始碼閱讀 集合類(1)

今天算是正式開始讀原始碼了。看了許多面經,發現不讀原始碼還是不行。今天稍微看了看一些介面和抽象類等,大致有了點理解。總結點它們之間的區別吧 collection是個介面,規範了一些相關的類必備的方法。其中,list set queue deque都繼承自collection。而collections...

JDK 原始碼 閱讀

to be continuing.持續修改中。1.stringbuffer 所處類層次 易忽略點 這個類是執行緒安全的。所有的method直接或間接加synchronized。所以我們如果是單執行緒情況下也考慮到這個會不會影響到效率。當然可能jit可以進行這個優化,待我接下來驗證。預設情況下乙個長為...