ArrayList 內部實現簡單理解

2021-09-11 01:33:20 字數 427 閱讀 2404

arraylist是基於陣列的, 內部是用 object實現的

當new 乙個空參 arraylist 的時候,系統生成乙個長度為0的object陣列。

當new乙個有參的arraylist的時候,該值作為陣列的長度值。如果該值小於 0,則丟擲乙個執行時異常。如果等於 0,則使用乙個空陣列,如果大於 0,則建立乙個長度為該值的新陣列。

當向集合新增的且長度不夠時,

把原來的陣列copy到乙個約原陣列1.5倍大的新的陣列裡

(int newcapacity

= (oldcapacity * 3)/2 + 1;)

在刪除元素中,刪除了乙個元素,集合整體向前移動了一位,然後將集合最後一 個元素設定為 null。

清空操作中,如果集合長度不等於 0,則將所有陣列的值都設定為 null,然後將成員變數 size 設定為 0 。

ArrayList的簡單實現

set中的資料物件沒有順序且不可以重複 list中的資料物件有順序且可以重複 arraylist與linkedlist的區別就是陣列與鍊錶的區別,效率高,執行緒不安全 vector底層也是陣列,執行緒安全,但是效率低。每個arraylist例項的初始容量,預設為10,隨著arraylist元素的增加...

自己實現乙個簡單的ArrayList

自己簡單的實現arraylist的 註解很清楚了,寫了arraylist的add obj 方法 remove index 方法,get index 方法,自己定義迭代器,自己進行迭代 迭代器介面 public inte ce iterator集合 的實現 version description 自己...

自己實現ArrayList

我們已經學過了陣列了,但我們知道乙個事,陣列是定長的,定長的陣列顯然是滿足不了我們的需求的,因為我們不知道自己需要多長的陣列,所以只能定義的盡可能大,這樣就會造成極大的空間浪費。那麼我們可不可以想個辦法去實現乙個不固定長度的容器呢?這節課我就來帶大家實現乙個不固定長度的容器。code 我的陣列表 用...