隨筆 - 22, 文章 - 0, 評論 - 1, 引用 - 0
          數(shù)據(jù)加載中……

          LinkedList的源碼閱讀筆記

          1,基本的鏈表實現(xiàn),內(nèi)部類Node表示存儲節(jié)點。
          2,移除某個節(jié)點時,會手動將節(jié)點的item屬性設(shè)為null,以便GC更好的收集。
          3,addAll()方法也并沒有調(diào)用入?yún)⒌募系牡鳎菍⑵鋞oArray()后,循環(huán)這個數(shù)組。
          4,調(diào)用clear()時,為了防止某個迭代器還在引用,也為了GC的回收,將每個節(jié)點的內(nèi)容及前后引用都手動設(shè)置為null。
          5,定位某個位置的節(jié)點時,根據(jù)位置距離頭尾的距離來決定從first還是last節(jié)點開始查找。
          6,LinkedList在內(nèi)部覆蓋了listIterator(),但是沒有覆蓋iterator(),所以LinkedList.iterator()調(diào)用過程如下:
          LinkedList.iterator() -> AbstractSequentialList.iterator() -> AbstractList.listIterator() -> LinkedList.listIterator(int index)
          最終返回的是LinkedList.ListItr對象實例,稍微有點繞,有興趣的朋友可以打斷點試試。
          7,如果沒有ListIterator.nextIndex(),里面其實可以不用設(shè)定nextIndex變量來記錄當(dāng)前位置的。
          8,序列化時會將size和“順序排列的元素流”依次跟在“默認(rèn)ArrayList對象流”后面。

          posted on 2012-09-08 03:11 王星游 閱讀(271) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 东平县| 彭山县| 凭祥市| 洱源县| 福泉市| 桐柏县| 山阳县| 巴林右旗| 浦北县| 靖边县| 连南| 黄浦区| 五华县| 芦山县| 綦江县| 唐河县| 合川市| 卫辉市| 芜湖县| 安平县| 延长县| 永德县| 信宜市| 木兰县| 白城市| 石景山区| 文昌市| 浙江省| 凤庆县| 如东县| 景洪市| 长治市| 剑阁县| 霸州市| 嘉祥县| 咸丰县| 澄江县| 鹿泉市| 澜沧| 崇礼县| 达尔|