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");
Bearbeitungszeit: 3179 ms
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");
Bearbeitungszeit: 3047 ms
Eh, fast das gleiche ... Abhängig von der Situation der Maschine zu diesem Zeitpunkt ist das Ergebnis nahezu gleich.
Die Bearbeitungszeit ist fast gleich Liegt es daran, dass nur die Referenzquelle kopiert wird?
arrayList.toArray(new String[arrayList.size()]); //Explizit und leicht zu verstehen
arrayList.toArray(new String[0]); //Ich denke über die Bedeutung von 0 nach
Leistung ist fast gleich, Die Größe sollte zur besseren Lesbarkeit angegeben werden
Recommended Posts