Vector和LinkedList源代码阅读笔记
Vector
1 三個成員變量
elementData: Container
elementCount: 有效長度
capacityIncrement: 每次增加的長度
?
2, 其構造函數沒什么特別的,但是不建議使用Vector()和Vector(intialCapacity)。前者把intialCapacity的默認值設為10,并調用后者。而后者把capacityincrement設為0。覺得這樣會有性能問題。
?
3,copyInto會影響參數。
?
4 Vector提供線程安全的訪問。
?
5,ensureCapacityHelper是一個private的非線程安全的方法。作用是ensureCapacity。其他add的時候會通過這個方法保證Capacity。其實這是一個比較好的解決線程沖突的方法,外部同步,內部不同步
?
6 setSize方法,修改了elmementCount。如果newSize>elmementCount,則會把elementData大出的部分設為Null。通過這個方法,讓我感覺到。其實Vector是一個怎么說呢,邏輯上能夠快速改變長度的數組。因為其他通過改變其內在變量elementCount。而不是數組本身來提高速度。
?
7, capacity方法,返回的是elementData.length。而size方法,返回的是elementCount
?
8, Vector有一系列elmenent方法,其實就是語義上操縱數組。
?
9,很奇怪的地方,Indexof(Object,index)是線程同步的,但是indexof則不是。
?
LinkedList
1, Linkelist代表Container的是一個鏈表頭元素的引用。叫做header。而其所操縱的對象,是一個Entry。其有三個成員變量,分別是next, previous, element。是一個標準的數據結構鏈表。 且這個header,并不存數據。整體上還說。和數據結構中的鏈表特性相同。
?
2,從其構造函數上來看。linkedList是一個循環鏈表
?
3,除了頭和尾巴之外,獲得其他的元素,會很慢。因為都是需要遍歷數組的。
轉載于:https://www.cnblogs.com/chandlersong/archive/2011/12/31/2309148.html
總結
以上是生活随笔為你收集整理的Vector和LinkedList源代码阅读笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何学习网络协议(学习笔记)
- 下一篇: 操作office