60 votes

La chaîne de StringBuilder.append est-elle plus efficace que la concaténation de chaîne ?

Selon l’indice Netbeans nommé Use chain of .append methods instead of string concatenation

Recherche la concaténation de chaîne dans le paramètre d’un appel de la méthode append de StringBuilder ou StringBuffer.

StringBuilder.append() est-il vraiment plus efficace que la concaténation de chaînes ?

Exemple de code

Vs.

11voto

Dirk Points 17809

Eh bien, votre premier exemple est essentiellement traduit par le compilateur en quelque chose du genre:

alors oui, il y a une certaine inefficacité ici. Cependant, la question de savoir si cela compte vraiment dans votre programme est une question différente. En plus d’être un style douteux (indice: subjectif), cela n’a généralement d’importance que si vous le faites dans une boucle serrée.

2voto

mellamokb Points 34067

Ce n’est plus efficace que si vous utilisez beaucoup de concaténation et de très longues chaînes. Pour une utilisation générale, telle que la création d’un nom de fichier dans votre exemple, toute concaténation de chaîne est très correcte et plus lisible.

Quoi qu’il en soit, il est peu probable que cette partie de votre application soit le goulot d’étranglement des performances.

2voto

Guillaume Points 10121

Théoriquement, oui. Parce que les objets String sont immuables : une fois construits, ils ne peuvent plus être modifiés. Ainsi, l’utilisation de « + » (concaténation) crée essentiellement un nouvel objet à chaque fois.

Pratiquement non. Le compilateur est assez intelligent pour remplacer tous vos « + » par des ajouts StringBuilder.

Pour une explication plus détaillée : http://kaioa.com/node/59

PS: Netbeans??? Allez!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X