[Java] ArrayList → Sollte die Größe bei der Array-Konvertierung angegeben werden?

Bei Angabe der Größe des Arrays

ListToArray.java


ArrayList<String> arrayList = new ArrayList<String>();
for(int i=0; i < 10000000;i++) { //← 100 Millionen
	arrayList.add("A");
}
long array1Start = System.currentTimeMillis();
arrayList.toArray(new String[arrayList.size()]);              //←← hier
long array1End = System.currentTimeMillis();
System.out.println("Verarbeitungszeit:" + (array1End - array1Start) + " ms");

Ergebnis

Bearbeitungszeit: 3179 ms

Wenn Sie die Größe des Arrays nicht angeben

ListToArray.java


ArrayList<String> arrayList = new ArrayList<String>();
for(int i=0; i < 100000000;i++) { //← 100 Millionen
	arrayList.add("A");
}
long array2Start = System.currentTimeMillis();
arrayList.toArray(new String[0]);              //←← hier
long array2End = System.currentTimeMillis();
System.out.println("Verarbeitungszeit:" + (array2End - array2Start) + " ms");

Ergebnis

Bearbeitungszeit: 3047 ms

Eh, fast das gleiche ... Abhängig von der Situation der Maschine zu diesem Zeitpunkt ist das Ergebnis nahezu gleich.

bewerten

Performance

Die Bearbeitungszeit ist fast gleich Liegt es daran, dass nur die Referenzquelle kopiert wird?

Lesbarkeit

arrayList.toArray(new String[arrayList.size()]); //Explizit und leicht zu verstehen
arrayList.toArray(new String[0]);                //Ich denke über die Bedeutung von 0 nach

Fazit

Leistung ist fast gleich, Die Größe sollte zur besseren Lesbarkeit angegeben werden

Recommended Posts

[Java] ArrayList → Sollte die Größe bei der Array-Konvertierung angegeben werden?
Geben Sie den Java-Speicherort in eclipse.ini an
Ich habe das neue Yuan-Problem in Java ausprobiert
Notizen im Kopf organisieren (Java-Arrangement)
Messen Sie die Größe eines Ordners mit Java
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
[Java] Konvertierung von Listentyp / Array-Typ
Ich habe [Klonmethode für Java-Arrays] als Klonmethode in Java-Arrays übersetzt.
Ich habe ein Roulette in Java gemacht.
Java-Anfänger fassten das Verhalten von Array und ArrayList kurz zusammen
Ich habe versucht, Methoden mit ähnlichen Funktionen für den Unterschied zwischen Java-Array und ArrayList zu vergleichen und ihnen zu entsprechen.
Ich war verwirrt, weil es eine Aufteilung im Array gab
[Java] Ich habe versucht, die Kombination zu implementieren.
[Java] Konvertiert ArrayList in Array
Ich habe den Konstruktor (Java) studiert.
Ich habe versucht, Metaprogrammierung mit Java
Ich möchte die if-else-Anweisung für bedingte Verzweigungen in Java vereinfachen
Ermitteln Sie die maximale Heap-Größe, wenn Sie in Java die Option -Xmx oder -XX: MaxRAM angeben
Ich habe ein "Sunshine Ikezaki-Spiel" gemacht, das ich auf Twitter in Java gesehen habe.
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
Greifen Sie mit Java auf die Netzwerkschnittstelle zu
Errate den Zeichencode in Java
Ich habe ein PDF mit Java erstellt.
Ich habe die Quelle von ArrayList gelesen, die ich gelesen habe
Entpacken Sie die Zip-Datei in Java
Java Basic Learning Content 2 (Array / ArrayList)
Ich habe Gordobachs Theorem in Java geschrieben
Ich habe das Java-Framework "Quarkus" ausprobiert.
Analysieren der COTOHA-API-Syntaxanalyse in Java
[Java] Unterschied zwischen Array und ArrayList
Ich habe eine Anmerkung in Java gemacht.
Ich habe versucht, JWT in Java zu verwenden
[Java] Konvertierung von Array zu Liste
Java-Array / Liste / Stream gegenseitige Konvertierungsliste
[Java] Konvertieren Sie ein Array in ArrayList * Achtung
Rufen Sie die Super-Methode in Java auf
Ich habe versucht, die letzten 10 Fragen zu lösen, die nach der Registrierung bei AtCoder in Java gelöst werden sollten
Erhöhen Sie dynamisch die Anzahl der Elemente in einem zweidimensionalen Java-Array (mehrdimensionales Array).
Geben Sie die Reihenfolge an, in der die Konfigurationsdateien und Klassen in Java geladen werden
Ich habe die COTOHA-API-Syntaxanalyse 100 Mal in Java aufgerufen, um die Leistung zu messen.
Ich möchte die IP-Adresse erhalten, wenn ich mit Java eine Verbindung zu Wi-Fi herstelle
Ich möchte für jedes Array mit Lambda-Ausdruck in Java
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
Geben Sie das Standard-JAVA_HOME an, das in Buildship verwendet wird
Bei der Suche nach mehreren in einem Java-Array
Holen Sie sich das Ergebnis von POST in Java
Java-Referenz zum Verständnis in der Abbildung
Versuchen Sie es mit der Stream-API in Java
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
Map ohne Verwendung eines Arrays in Java
So führen Sie eine Basiskonvertierung in Java durch
[Java] Verwenden Sie kryptografische Technologie mit Standardbibliotheken
Vergleichen Sie Elemente eines Arrays (Java)
Versuchen Sie, den CORBA-Dienst unter Java 11+ aufzurufen
[Tag: 5] Ich habe die Grundlagen von Java zusammengefasst
Was ist die Hauptmethode in Java?
Messen Sie einfach die Größe von Java-Objekten
[Java] Ich habe die grundlegende Grammatik persönlich zusammengefasst.
Unveränderlich (unveränderlich) Listet die Objektkonvertierungsfunktion in Java8 auf
So erhalten Sie das Datum mit Java