[Java] Qu'est-ce que ArrayList?

Méthode de déclaration / d'initialisation ArrayList

ArrayList est déclaré comme suit. ArrayList Nom de la variable = new ArrayList (capacité initiale); * La capacité initiale peut être omise

ArrayListSample.java


ArrayList<Integer> arrayList = new ArrayList<Integer>();  //Aucune capacité initiale spécifiée
ArrayList<Integer> arrayList = new ArrayList<Integer>(3); //Spécifiez la capacité initiale
//ArrayList<int> arrayList = new ArrayList<int>();        //Erreur de compilation

Pourquoi les types primitifs ne sont pas bons

Jetez un œil au contenu de ArrayList

ArrayList.class


public class ArrayList<E> extends AbstractList<E> … {
    private static final int DEFAULT_CAPACITY = 10;
    private static final Object[] EMPTY_ELEMENTDATA = {};
    transient Object[] elementData;      //← État actuel des données ArrayList
    private int size;
    //constructeur
    public ArrayList(int initialCapacity) {
        if (initialCapacity > 0) {
            this.elementData = new Object[initialCapacity];
        } else if (initialCapacity == 0) {
            this.elementData = EMPTY_ELEMENTDATA;
        }
    }
//Omission

L'identité d'ArrayList était une classe d'opération pratique centrée sur __Object [] __. Seuls les types de données de type __Object peuvent être utilisés comme ArrayList. __ Le type primitif n'étant pas un type de données qui hérite du type Object, ne peut-il pas être utilisé?

Type primitif

//8 types
byte, short, boolean, char, int, long, float, double

Quelle est la capacité initiale spécifiée?

Que se passe-t-il lorsque vous faites du nouveau, ajoutez, obtenez, supprimez

ArrayList<Integer> arrayList = new ArrayList<Integer>(3);
arrayList.add(new Integer(10); //a
arrayList.add(new Integer(11); //b
arrayList.add(new Integer(12); //c
arrayList.get(1);
arrayList.remove(1);

new.png

Lorsque le nombre d'éléments dépasse la capacité initiale

ArrayList<Integer> arrayList = new ArrayList<Integer>(3);
arrayList.add(new Integer(10); //a
arrayList.add(new Integer(11); //b
arrayList.add(new Integer(12); //c
arrayList.add(new Integer(13); //d

new.png

Quelle est l'influence du mouvement de la séquence

Si non spécifié

ArrayListSample.java


ArrayList<Integer> arrayList = new ArrayList<Integer>();
long array1Start = System.currentTimeMillis();
for(int i=0; i < 10000000;i++) {              //← 10 millions
	arrayList.add(new Integer(10));
}
long array1End = System.currentTimeMillis();
System.out.println("temps de traitement:" + (array1End - array1Start) + " ms");

résultat

Temps de traitement: 6505 ms

Si spécifié

ArrayListSample.java


ArrayList<Integer> arrayList = new ArrayList<Integer>(10000000);
long array1Start = System.currentTimeMillis();
for(int i=0; i < 10000000;i++) {               //← 10 millions
	arrayList.add(new Integer(10));
}
long array1End = System.currentTimeMillis();
System.out.println("temps de traitement:" + (array1End - array1Start) + " ms");

résultat

Temps de traitement: 5630 ms

Il y avait une différence d'environ 1 seconde.

Conclusion

Pour une grande capacité, spécifiez la capacité attendue

Recommended Posts

[Java] Qu'est-ce que ArrayList?
Qu'est-ce que 'java
Qu'est-ce que Java <>?
Qu'est-ce que 'java
Qu'est-ce que l'encapsulation Java?
Qu'est-ce que la technologie Java?
Qu'est-ce que Java API-java
[Java] Qu'est-ce que flatMap?
Qu'est-ce que l'assertion Java? Résumé.
Qu'est-ce qu'une collection Java?
[Java] Qu'est-ce que jaee j2ee?
[Java] Qu'est-ce que l'héritage de classe?
[Notions de base Java] Qu'est-ce que la classe?
Qu'est-ce que l'analyse Java Escape?
Qu'est-ce que JVM (Java Virtual Machine)?
Qu'est-ce que Thread Safe (avec Java)
[Java] Qu'est-ce que l'exception de modification simultanée?
Qu'est-ce que Cubby
Qu'est-ce qui est nul? ]
Qu'est-ce que Keycloak
Qu'est-ce que maven?
Qu'est-ce que Jackson?
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que IM-Juggling?
Qu'est-ce que les paramètres
Qu'est-ce que la façade? ??
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Qu'est-ce que centOS
Qu'est-ce que RubyGem?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat
Qu'est-ce qu'une classe en langage Java (3 /?)
Quelle est la meilleure lecture de fichier (Java)
Qu'est-ce qu'une classe en langage Java (1 /?)
Qu'est-ce que Java et l'environnement de développement (MAC)
Quelle est la méthode principale en Java?
Qu'est-ce que l'assemblage Maven?
Qu'est-ce que `docker-compose up`?
Qu'est-ce que vue cli
Qu'est-ce qu'une interface
Qu'est-ce que le modèle Java Servlet / JSP MVC?
Qu'est-ce que le moi de Ruby?
Qu'est-ce que l'attr_accessor de Ruby?
Qu'est-ce qu'une permission refusée?
Qu'est-ce que le contrôle d'instance?
Qu'est-ce qu'un initialiseur?
Qu'est-ce que Spring Tools 4
Qu'est-ce qu'un opérateur?
Qu'est-ce que le @VisibleForTesting de Guava?
Qu'est-ce qu'un modèle MVC?
Qu'est-ce qu'une annotation?
Qu'est-ce que l'artefact de Gradle?
Qu'est-ce que l'audit JPA?