原始碼解析之迭代器

2021-08-21 11:18:32 字數 1027 閱讀 9803

今天看了迭代器的原始碼,發現並不難,接下來記錄講解

我們直到迭代器iterator是乙個介面,它的介面與本身並沒有全部實現方法。

public inte***ce iterator

default void foreachremaining(consumer super e> action)

}

最下面的方法我沒看,以後有時間看了再更

既然沒有實現next等常用方法,我們知道迭代器是服務與集合類collection中,那麼我們集合類collection中找找看。

iteratoriterator();
我們發現collection中只有乙個迭代器型別的屬性,既然找不到我們繼續向下找

我們直接去arraylist類裡去找:

我們發現iterator方法繼承自abstractlist抽象類

public iteratoriterator()
那我們去找itr類。

private class itr implements iterator

//獲取下乙個結點的操作

public e next() catch (indexoutofbound***ception e)

}//移除方法

public void remove() catch (indexoutofbound***ception e)

}//這個方法就是判斷集合是否再迭代過程中被非法更改

final void checkforcomodification()

}

abstractlist.this.remove(lastret);
看這句,我們的itr 是abstractlist的內部類,用外部類.this.方法訪問外部類的方

Spring原始碼解析之 Aop原始碼解析(2)

spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...

原始碼解析 JDK原始碼之LinkedHashMap

linkedhashmap原始碼,基於 jdk1.6.43 他繼承了hashmap,並且實現了插入和訪問的有序功能 public class linkedhashmapextends hashmapimplements map 其也有乙個entry內部類,繼承了 hashmap 的entry 內部類...

STL原始碼剖析 迭代器

一 迭代器 迭代器五種相應型別 1.valuetype,是指迭代器所指物件的型別。2.differencetype,用來表示迭代器之間的距離,可以用來表示乙個容器的最大容量。例如stl中的count 函式,其返回值就是difference type。3.referencetype,在c 中如果要傳回...