ArrayList wird wie folgt deklariert.
ArrayList
ArrayListSample.java
ArrayList<Integer> arrayList = new ArrayList<Integer>(); //Keine anfängliche Kapazität angegeben
ArrayList<Integer> arrayList = new ArrayList<Integer>(3); //Geben Sie die anfängliche Kapazität an
//ArrayList<int> arrayList = new ArrayList<int>(); //Kompilierungsfehler
Schauen Sie sich den Inhalt von ArrayList an
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; //← Aktueller Zustand der ArrayList-Daten
private int size;
//Konstrukteur
public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
this.elementData = EMPTY_ELEMENTDATA;
}
}
//Unterlassung
Die Identität von ArrayList war eine praktische Operationsklasse, die sich auf __Object [] __ konzentrierte. Als ArrayList können nur Datentypen vom Typ __Object verwendet werden. __ __ Kann der primitive Typ nicht verwendet werden, da er kein Datentyp ist, der den Objekttyp erbt?
//8 Typen
byte, short, boolean, char, int, long, float, double
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);
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
ArrayListSample.java
ArrayList<Integer> arrayList = new ArrayList<Integer>();
long array1Start = System.currentTimeMillis();
for(int i=0; i < 10000000;i++) { //← 10 Millionen
arrayList.add(new Integer(10));
}
long array1End = System.currentTimeMillis();
System.out.println("Verarbeitungszeit:" + (array1End - array1Start) + " ms");
Bearbeitungszeit: 6505 ms
ArrayListSample.java
ArrayList<Integer> arrayList = new ArrayList<Integer>(10000000);
long array1Start = System.currentTimeMillis();
for(int i=0; i < 10000000;i++) { //← 10 Millionen
arrayList.add(new Integer(10));
}
long array1End = System.currentTimeMillis();
System.out.println("Verarbeitungszeit:" + (array1End - array1Start) + " ms");
Bearbeitungszeit: 5630 ms
Es gab einen Unterschied von ungefähr 1 Sekunde.
Geben Sie für große Kapazitäten die erwartete Kapazität an
Recommended Posts