Heim  >  Artikel  >  Java  >  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?

王林
王林nach vorne
2019-11-25 13:37:353224Durchsuche

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

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;

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen