La clase
Considere el siguiente código:
String
crea cadenas inmutables. Esto significa que si aplica cualquier operación a una cadena u operación a una cadena, el resultado será una nueva cadena. Si esta nueva cadena no se asigna a ninguna variable, el resultado de la operación se perderá. En consecuencia, las operaciones sobre dichas cadenas conducen necesariamente a la creación de una nueva cadena. Y esto significa costos adicionales de memoria y tiempo de procesador. Si hay muchas operaciones en una cadena, a menudo es más eficiente usar cadenas dinámicas, que son implementadas por la clase 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);
}
El código anterior aborda el mismo problema. Cuando agregamos 100 nuevas subcadenas a una cadena determinada. El primer ejemplo utiliza la clase para este propósito String
, lo cual no es muy eficiente ya que cada adición de una subcadena conduce a la construcción de un nuevo objeto String
. Y esto es una pérdida adicional de memoria y tiempo. En el segundo ejemplo, este problema se resuelve usando la clase StringBuilder
. Creamos un objeto de la clase de antemano StringBuilder
y luego, usando el método, append
formamos la cadena que necesitamos cambiando el contenido del objeto creado StringBuilder
, pero sin volver a crear el objeto en sí.
GO TO FULL VERSION