Opa 
Tenho um looping que deve concatenar Strings. Ql a melhor maneira de fazer isso? Eu li que com o + não é nada recomendado pq ele cria um novo objeto em memória. Qual a melhor opção então?
[]'s
Opa 
Tenho um looping que deve concatenar Strings. Ql a melhor maneira de fazer isso? Eu li que com o + não é nada recomendado pq ele cria um novo objeto em memória. Qual a melhor opção então?
[]'s
StringBuilder e StringBuffer
Utilize a classe StringBuilder é a melhor opção.
StringBuilder é a melhor maneira.
Porém essa classe só está disponivel apartir do Java 5.
É a melhor opção em ambientes ThreadSafe.
Outra alternativa é o StringBuffer, que é igual ao StringBuider, porém todos os seus métodos são synchronized, ou seja, é um pouco mais “lenta”.
StringBuilder builder = new StringBuilder();
builder.append("Hello");
builder.append(" ");
builder.append("World");
System.out.println(builder.toString());
Aqui estamos utilizando Java 1.4.
Vou usar a StringBuffer
Valeu :D:D
Depois que concatenar tudo, eu posso dar um .toString() para poder enviar para o método? É uma boa prática?
Creio que seja a única opção para obter a String gerada.
:lol:
Ou pode usar .toString() ou passa o objeto direto.
Tipo:
public class TestStringBuilder {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
builder.append("Olá ");
builder.append("Augusto, ");
builder.append("tudo ");
builder.append("bem? ");
System.out.println(builder);
System.out.println(builder.toString());
}
}
Output:
Olá Augusto, tudo bem?
Olá Augusto, tudo bem?
Abraços!
Ou pode usar .toString() ou passa o objeto direto.Abraços!
No caso de se fazer:
System.out.println(buffer);
o método toString() do objeto será chamado de qualquer forma dentro do método println().
Ou seja, o jeito é toString(). Vai na fé!
Valeu feras 
Só completando, se possível, especifique o tamanho máximo do Buffer, caso contrário a realocação de memória pode prejudicar também o seu desempenho.