Maison > Java > Javacommencer > Quelle est la différence entre ArrayList et un tableau général en Java ? Quelle est son efficacité ?

Quelle est la différence entre ArrayList et un tableau général en Java ? Quelle est son efficacité ?

王林
Libérer: 2019-11-25 13:37:35
avant
3275 Les gens l'ont consulté

Quelle est la différence entre ArrayList et un tableau général en Java ? Quelle est son efficacité ?

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
Copier après la connexion

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;
Copier après la connexion

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal