搜尋
首頁JavaJava入門java中的ArrayList與一般陣列有什麼不同?效率如何?

java中的ArrayList與一般陣列有什麼不同?效率如何?

Nov 25, 2019 pm 01:37 PM
arraylistjava差別效率陣列

java中的ArrayList與一般陣列有什麼不同?效率如何?

下面由java快速入門欄位為大家介紹ArrayList與一般陣列的差異。

什麼是ArrayList?

ArrayList的實作原理其實就是陣列(動態陣列)。

動態陣列與一般陣列有什麼不同?

與Java中的陣列相比,ArrayList的容量能動態地成長。

ArrayList效率怎麼樣?

ArrayList不是線程安全的,所以效率比較高 ,但只能用於單線程的環境。

ArrayList主要繼承哪些類別實作了哪些介面?

ArrayList主要繼承了AbstractList類,實作了ListRandomAccessCloneableSerializable介面

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable

RandomAccess的意思是其擁有快速存取的能力,ArrayList可以以O(1)[^1]的時間複雜度去根據下標訪問元素。由於ArrayList底層機構是數組,所以它佔據了一塊連續的記憶體空間,其長度就是數組的大小,因此它也有數組的缺點,在空間效率不高,但是也有它的優點,就是查詢速度快,時間效率較快。

ArrayList的常數與變數有哪些?

// 序列ID
private static final long serialVersionUID = 8683452581122892189L;

// ArrayList默认的初始容量大小
private static final int DEFAULT_CAPACITY = 10;

// 空对象数组,用于空实例的共享空数组实例
private static final Object[] EMPTY_ELEMENTDATA = {};

// 空对象数组,如果使用默认的构造函数创建,则默认对象内容是该值
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};

// 存放当前数据,不参与序列化
transient Object[] elementData; // non-private to simplify nested class access

// list大小
private int size;

當集合中的元素超出數組規定的長度時,數組就會進行擴容操作,擴容操作就是ArrayList存儲操作緩慢的原因,尤其是當數據量較大的時候,每次擴容消耗的時間會越來越多。

以上是java中的ArrayList與一般陣列有什麼不同?效率如何?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具