Heim > Java > JavaErste Schritte > Was ist der Unterschied zwischen ArrayList und allgemeinem Array in Java? Wie effizient ist es?

Was ist der Unterschied zwischen ArrayList und allgemeinem Array in Java? Wie effizient ist es?

王林
Freigeben: 2019-11-25 13:37:35
nach vorne
3279 Leute haben es durchsucht

Was ist der Unterschied zwischen ArrayList und allgemeinem Array in Java? Wie effizient ist es?

In der folgenden Spalte wird der Unterschied zwischen ArrayList und allgemeinen Arrays aus der Spalte Java Quick Start vorgestellt.

Was ist ArrayList?

Das Implementierungsprinzip von ArrayList ist eigentlich ein Array (dynamisches Array).

Was ist der Unterschied zwischen dynamischen Arrays und allgemeinen Arrays?

Im Vergleich zu Arrays in Java kann die Kapazität von ArrayList dynamisch wachsen.

Wie effizient ist ArrayList?

ArrayList ist nicht threadsicher und daher effizienter, kann jedoch nur in einer Single-Thread-Umgebung verwendet werden.

Welche Klassen erbt und implementiert ArrayList hauptsächlich welche Schnittstellen?

ArrayList erbt hauptsächlich die Klasse AbstractList und implementiert die Schnittstellen List, RandomAccess, Cloneable und Serializable.

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

RandomAccess bedeutet, dass With Durch die Möglichkeit des schnellen Zugriffs kann ArrayList auf Elemente zugreifen, die auf Indizes mit einer zeitlichen Komplexität von O(1)[^1] basieren. Da die zugrunde liegende Struktur von ArrayList ein Array ist, belegt es einen kontinuierlichen Speicherplatz und seine Länge entspricht der Größe des Arrays. Daher hat es auch die Nachteile von Arrays und ist nicht sehr platzsparend, hat aber auch seine Vorteile Das heißt, schnelle Abfragegeschwindigkeit und Zeiteffizienz.

Was sind die Konstanten und Variablen von 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;
Nach dem Login kopieren

Wenn die Elemente in der Sammlung die angegebene Länge des Arrays überschreiten, wird das Array erweitert. Der Erweiterungsvorgang ist der Grund, warum der ArrayList-Speichervorgang langsam ist, insbesondere wenn die Datenmenge zunimmt ist groß. Der Ausbau wird immer mehr Zeit in Anspruch nehmen.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen ArrayList und allgemeinem Array in Java? Wie effizient ist es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage