這期內容當中的小編將會給大家?guī)碛嘘Pjava中ArrayList和普通數(shù)組的區(qū)別,以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了順德免費建站歡迎大家使用!
什么是ArrayList?
ArrayList的實現(xiàn)原理其實就是數(shù)組(動態(tài)數(shù)組)。
動態(tài)數(shù)組與一般數(shù)組有什么區(qū)別?
與Java中的數(shù)組相比,ArrayList的容量能動態(tài)地增長。
ArrayList效率怎么樣?
ArrayList不是線程安全的,所以效率比較高 ,但是只能用于單線程的環(huán)境中。
ArrayList主要繼承哪些類實現(xiàn)了哪些接口?
ArrayList主要繼承了AbstractList
類,實現(xiàn)了List
、RandomAccess
、Cloneable
、Serializable
接口
public class ArrayListextends AbstractList implements List , RandomAccess, Cloneable, java.io.Serializable
RandomAccess
的意思是其擁有快速訪問的能力,ArrayList可以以 O(1)[^1]的時間復雜度去根據(jù)下標訪問元素。由于ArrayList底層機構是數(shù)組,所以它占據(jù)了一塊連續(xù)的內存空間,其長度就是數(shù)組的大小,因此它也有數(shù)組的缺點,在空間效率不高,但是也有它的優(yōu)點,就是查詢速度快,時間效率較快。
ArrayList的常量與變量有哪些?
// 序列ID private static final long serialVersionUID = 8683452581122892189L; // ArrayList默認的初始容量大小 private static final int DEFAULT_CAPACITY = 10; // 空對象數(shù)組,用于空實例的共享空數(shù)組實例 private static final Object[] EMPTY_ELEMENTDATA = {}; // 空對象數(shù)組,如果使用默認的構造函數(shù)創(chuàng)建,則默認對象內容是該值 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; // 存放當前數(shù)據(jù),不參與序列化 transient Object[] elementData; // non-private to simplify nested class access // list大小 private int size;
當集合中的元素超出數(shù)組規(guī)定的長度時,數(shù)組就會進行擴容操作,擴容操作就是ArrayList存儲操作緩慢的原因,尤其是當數(shù)據(jù)量較大的時候,每次擴容消耗的時間會越來越多。
上述就是小編為大家分享的java中ArrayList和普通數(shù)組的區(qū)別了,如果您也有類似的疑惑,不妨礙參照上述分析進行理解。如果想了解更多相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊。