En supposant que j'ai une ArrayList
ArrayList myList;
Et que je veux appeler toArray, y a-t-il une raison de performance à utiliser
MyClass[] arr = myList.toArray(new MyClass[myList.size()]);
plutôt que
MyClass[] arr = myList.toArray(new MyClass[0]);
?
Je préfère le deuxième style, car il est moins verbeux, et j'ai supposé que le compilateur se chargerait de s'assurer que le tableau vide ne serait pas réellement créé, mais je me demandais si c'était vrai.
Bien sûr, dans 99% des cas, cela ne fait pas de différence d'une manière ou d'une autre, mais j'aimerais garder un style cohérent entre mon code normal et mes boucles internes optimisées...
9 votes
Il semble que la question ait maintenant été résolue dans un nouveau billet de blog par Aleksey Shipilv, Les tableaux de la sagesse des anciens !
7 votes
Du billet de blog : "En résumé : toArray(new T[0]) semble plus rapide, plus sûr et plus propre contractuellement, et devrait donc être le choix par défaut maintenant."