国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ArrayList和LinkedList原理

2019-11-08 19:26:56
字體:
來源:轉載
供稿:網友

ArrayList:

ArrayList 使用默認無參數構造函數,底層的Object數組長度默認為10,當長度不夠用自動增長0.5倍

源代碼:

默認長度10

    /**     * Default initial capacity.     */    PRivate static final int DEFAULT_CAPACITY = 10;

如果數組長度不夠增長0.5倍grow方法

       int newCapacity = oldCapacity + (oldCapacity >> 1);

ArrayList為什么查詢快,增刪慢?

查詢快:

因為數組的內存地址排列是連續的,可以很快找到比如 list.get(100); 第一個元素內存地址是0x98,那么內存地址加100就找到了。

增刪慢:

增:

我們假設這個數組長度容量為7,現在要再添加一個元素它會怎么做呢?

增加元素時,先檢測數組長度是否夠用,如果底層Object數組長度不夠,增加0.5倍的長度,形成一個新的Object數組,并將之前的數組元素copy到新的數組里面。

刪:

 

刪除慢:當刪除里面的其中一個數據時,后面的數據要全部移動一個位置。

LinkedList:

使用鏈表數據結構實現,特點,增刪快,查詢慢。

查詢慢:元素之前內存地址不連續,只能挨個挨個遍歷查找

增加:

插入數據時,只需要改變內存地址的指向;

將和它有關系的內存地址指向刪除掉,沒人指向它,它就成為了垃圾對象。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盐边县| 黄平县| 珠海市| 徐汇区| 永宁县| 合水县| 乐都县| 六枝特区| 榆林市| 永清县| 汤阴县| 介休市| 平谷区| 如皋市| 宜章县| 永寿县| 清原| 贵州省| 盐亭县| 新源县| 丽江市| 滁州市| 元朗区| 吉木萨尔县| 平塘县| 民乐县| 东宁县| 昭苏县| 五大连池市| 大化| 德化县| 鱼台县| 武宁县| 武穴市| 安龙县| 泰和县| 浪卡子县| 嘉定区| 同德县| 临清市| 榆林市|