Die Klasse
Betrachten Sie den folgenden Code:
String
erstellt unveränderliche Zeichenfolgen. Das bedeutet, dass das Ergebnis eine neue Zeichenfolge ist, wenn Sie eine Operation auf eine Zeichenfolge oder eine Operation auf eine Zeichenfolge anwenden. Wenn dieser neue String keiner Variablen zugewiesen wird, geht das Ergebnis der Operation verloren. Dementsprechend führen Operationen an solchen Zeichenfolgen zwangsläufig zur Erstellung einer neuen Zeichenfolge. Und das bedeutet zusätzliche Speicher- und Prozessorzeitkosten. Wenn es viele Operationen auf einem String gibt, dann ist es oft effizienter, dynamische Strings zu verwenden, die von der Klasse implementiert werden 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);
}
Der obige Code behebt das gleiche Problem. Wenn wir einer bestimmten Zeichenfolge 100 neue Teilzeichenfolgen hinzufügen. Das erste Beispiel verwendet die Klasse für diesen Zweck String
, was nicht sehr effizient ist, da jede Hinzufügung eines Teilstrings zur Konstruktion eines neuen Objekts führt String
. Und das ist eine zusätzliche Verschwendung von Speicher und Zeit. Im zweiten Beispiel wird dieses Problem mithilfe der Klasse gelöst StringBuilder
. Wir erstellen im Voraus ein Objekt der Klasse StringBuilder
und append
bilden dann mit der Methode die benötigte Zeichenfolge, indem wir den Inhalt des erstellten Objekts ändern StringBuilder
, ohne jedoch das Objekt selbst neu zu erstellen.
GO TO FULL VERSION