La classe
Considera il codice seguente:
String
crea stringhe immutabili. Ciò significa che se applichi un'operazione a una stringa o un'operazione a una stringa, il risultato sarà una nuova stringa. Se questa nuova stringa non viene assegnata ad alcuna variabile, il risultato dell'operazione andrà perso. Di conseguenza, le operazioni su tali stringhe portano necessariamente alla creazione di una nuova stringa. Ciò significa costi aggiuntivi in termini di memoria e tempo del processore. Se sono presenti molte operazioni su una stringa, spesso è più efficiente utilizzare stringhe dinamiche, implementate dalla classe StringBuilder
.
String s = "Some text";
int count = 100;
for(int i = 0; i<100;i++){
s+=i;
}
**********************
StringBuilder s = new StringBuilder(110);
int count = 100;
s.append("Some text");
for(int i = 0;i<count;i++){
s.append(i);
}
Il codice sopra risolve lo stesso problema. Quando aggiungiamo 100 nuove sottostringhe a una determinata stringa. Il primo esempio utilizza a questo scopo la classe String
, il che non è molto efficiente poiché ogni aggiunta di una sottostringa porta alla costruzione di un nuovo oggetto String
. E questo è un ulteriore spreco di memoria e tempo. Nel secondo esempio, questo problema viene risolto utilizzando la classe StringBuilder
. Creiamo in anticipo un oggetto della classe StringBuilder
e poi utilizzando il metodo append
formiamo la stringa che ci occorre modificando il contenuto dell'oggetto creato StringBuilder
, ma senza ricreare l'oggetto stesso.
GO TO FULL VERSION