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