Dadas las 2 toString()
implementaciones a continuación, cuál es la preferida:
public String toString(){
return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}
o
public String toString(){
StringBuilder sb = new StringBuilder(100);
return sb.append("{a:").append(a)
.append(", b:").append(b)
.append(", c:").append(c)
.append("}")
.toString();
}
?
Más importante aún, dado que solo tenemos 3 propiedades, podría no hacer la diferencia, pero ¿en qué punto cambiaría de +
concat a StringBuilder
?
StringBuilder
cuánto tamaño asignar por adelantado, de lo contrario, si se queda sin espacio, tendrá que duplicar el tamaño creando un nueva char[]
matriz luego copia los datos, lo cual es costoso. Puede hacer trampas dando el tamaño y luego no hay necesidad de esta creación de matriz, por lo que si cree que su cadena tendrá ~ 100 caracteres de largo, puede configurar el StringBuilder a ese tamaño y nunca tendrá que expandirse internamente.