La colonne suivante présentera la différence entre ArrayList et les tableaux généraux de la colonne Java Quick Start.
Qu'est-ce qu'ArrayList ?
Le principe d'implémentation d'ArrayList est en fait un tableau (tableau dynamique).
Quelle est la différence entre les tableaux dynamiques et les tableaux généraux ?
Par rapport aux tableaux en Java, la capacité d'ArrayList peut croître de manière dynamique.
Quelle est l'efficacité d'ArrayList ?
ArrayList n'est pas thread-safe, il est donc plus efficace, mais il ne peut être utilisé que dans un environnement monothread.
De quelles classes ArrayList hérite-t-il principalement et implémente-t-il quelles interfaces ?
ArrayList hérite principalement de la classe AbstractList
et implémente les interfaces List
, RandomAccess
, Cloneable
et Serializable
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable
RandomAccess
signifie que With la possibilité d'accéder rapidement, ArrayList peut accéder aux éléments basés sur des indices avec une complexité temporelle de O(1)[^1]. Étant donné que la structure sous-jacente d'ArrayList est un tableau, elle occupe un espace mémoire continu et sa longueur est la taille du tableau. Par conséquent, elle présente également les inconvénients des tableaux et n'est pas très efficace dans l'espace, mais elle a aussi ses avantages. , c'est-à-dire une vitesse de requête rapide et une efficacité temporelle plus rapide.
Quelles sont les constantes et variables d'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;
Lorsque les éléments de la collection dépassent la longueur spécifiée du tableau, le tableau sera étendu, l'opération d'expansion est la raison pour laquelle l'opération de stockage d'ArrayList est lente, en particulier lorsque la quantité de données est importante. est importante. L’expansion prendra de plus en plus de temps.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!