隨筆 - 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變量來記錄當前位置的。
          8,序列化時會將size和“順序排列的元素流”依次跟在“默認ArrayList對象流”后面。

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

          主站蜘蛛池模板: 贵德县| 康保县| 明溪县| 晋中市| 涟源市| 兴文县| 邹城市| 乃东县| 息烽县| 蕉岭县| 安丘市| 牙克石市| 大同县| 新兴县| 当阳市| 乐亭县| 阳信县| 南皮县| 滁州市| 达孜县| 安平县| 泉州市| 钟山县| 和静县| 克什克腾旗| 华坪县| 荃湾区| 辛集市| 榆树市| 正定县| 静乐县| 油尖旺区| 阿鲁科尔沁旗| 日照市| 拜泉县| 游戏| 贡山| 崇阳县| 额尔古纳市| 安国市| 长宁县|