表 ArrayList的實現

2021-07-10 08:36:39 字數 361 閱讀 9223

增:只在末尾插入的話,o(1),如果是中間插入的話,o(n)

刪:通過下標刪除的話,o(n), 通過值刪除的話 ,o(n^2)

改:o(1)

查:因為arraylis的實現就是乙個一維陣列,所以可以快速通過下標讀取資料,o(1),但是如果是遍歷查詢的話,為o(n)

迭代器:remove的時候會還是會o(n) ,這是陣列本身的限制。

迭代器使用內部類來實現,因為內部類可以訪問外部類成員,並對外部類來說是封閉的。

如果使用巢狀類的話,編譯器其實無法知道這個迭代器到底是誰的。但是內部類從屬於物件,所以沒有語義問題。

從迭代器設計模式來考慮的話,從屬於物件,對外部類封閉也是極好的

ps:泛型的好處

ArrayList線性表Java實現

自定義list介面 classname list description 列表的介面 author xiaomu date 2018年1月14日 下午4 25 05 param public inte ce listarraylist classname arraylist description ...

ArrayList的簡單實現

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

ArrayList的實現原理

arraylist是list介面的可變陣列的實現。實現了所有可選列表操作,並允許包括 null 在內的所有元素。除了實現 list 介面外,此類還提供一些方法來操作內部用來儲存列表的陣列的大小。每個 arraylist 例項都有乙個容量,該容量是指用來儲存列表元素的陣列的大小。它總是至少等於列表的大...