今天看了迭代器的原始碼,發現並不難,接下來記錄講解
我們直到迭代器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 中如果要傳回...