ListToArray.java
ArrayList<String> arrayList = new ArrayList<String>();
for(int i=0; i < 10000000;i++) { //← 100 millions
arrayList.add("A");
}
long array1Start = System.currentTimeMillis();
arrayList.toArray(new String[arrayList.size()]); //←← ici
long array1End = System.currentTimeMillis();
System.out.println("temps de traitement:" + (array1End - array1Start) + " ms");
Temps de traitement: 3179 ms
ListToArray.java
ArrayList<String> arrayList = new ArrayList<String>();
for(int i=0; i < 100000000;i++) { //← 100 millions
arrayList.add("A");
}
long array2Start = System.currentTimeMillis();
arrayList.toArray(new String[0]); //←← ici
long array2End = System.currentTimeMillis();
System.out.println("temps de traitement:" + (array2End - array2Start) + " ms");
Temps de traitement: 3047 ms
Eh, presque pareil ... Selon la situation de la machine à ce moment-là, le résultat sera presque le même.
Le temps de traitement est presque le même Est-ce parce qu'il ne fait que copier la source de référence?
arrayList.toArray(new String[arrayList.size()]); //Explicite et facile à comprendre
arrayList.toArray(new String[0]); //Je pense à la signification de 0
Les performances sont presque les mêmes, La taille doit être spécifiée pour la lisibilité
Recommended Posts