| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 20:59:59
|
douglasmorais
JavaChild
![[Avatar]](/images/avatar/0c394f0bd80e37fa0d8873166e556457.png)
Membro desde: 29/10/2007 14:05:58
Mensagens: 141
Offline
|
nesse trecho de codigo, nao entendi pq nao foi colocado append no lugar do concat
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 21:05:11
|
douglasmorais
JavaChild
![[Avatar]](/images/avatar/0c394f0bd80e37fa0d8873166e556457.png)
Membro desde: 29/10/2007 14:05:58
Mensagens: 141
Offline
|
Acho que entendi.
O append() eh metodo da classe StringBuilder.
E o concat() eh metodo da classe String.
Na hora do println a sql vira string novamente, dai, se quiser somar outro pedaco de string tem que usar o concat().
Eh isso mesmo ?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 21:23:05
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Isso. E o ideal é nunca concatenar Strings dentro de whiles.
Use apenas o append do StringBuilder.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 21:29:29
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
String é um objeto imutável. Quando você chama o método concat, uma nova String é criada (e isso é muito lento se comparado ao StringBuilder).
StringBuilder serve justamente para concatenar dados (Strings, números, etc.) de uma forma rápida. O método dessa classe que faz isso é o append.
Quando você executa o System.out.println passando um objeto como parâmetro, ele automaticamente chama o método toString dele. Na prática, as duas linhas abaixo são equivalentes:
No seu código, você cria um StringBuilder, converte ele para String, chama o método substring, converte o StringBuilder para String de novo (para resgatar o tamanho) e chama o método concat de String (que é lento). Seu código não está tão otimizado quanto poderia estar.
|
Marco Biscaro.
Seja livre!
Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?
Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 21:38:04
|
drsmachado
GUJ Expert
Membro desde: 25/09/2010 12:54:06
Mensagens: 3986
Localização: Curitiba / São José dos Pinhais - PR
Offline
|
marcobiscaro2112 wrote:
Na prática, as duas linhas abaixo são equivalentes:
Na prática, a segunda linha lançará exception, pois métodos são chamados com os () ao final e os parâmetros requeridos entre eles.
|
Rumo aos 4000
"Os homens de verdade assumem suas responsabilidades e culpas. Esquivar-se e dar desculpas é atitude dos tolos, que preferem não se comprometer".
Lugar de perguntar é no fórum!
Não respondo via MP
Não respondo por Email
Não respondo por IM |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 21:38:53
|
douglasmorais
JavaChild
![[Avatar]](/images/avatar/0c394f0bd80e37fa0d8873166e556457.png)
Membro desde: 29/10/2007 14:05:58
Mensagens: 141
Offline
|
Grande Viny
Sempre acudindo os pobres e oprimidos... rs
Valeu cara
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 21:39:10
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
drsmachado wrote:
marcobiscaro2112 wrote:
Na prática, as duas linhas abaixo são equivalentes:
Na prática, a segunda linha lançará exception, pois métodos são chamados com os () ao final e os parâmetros requeridos entre eles.
Sim, esqueci dos parênteses na chamada do método, mas você entendeu a ideia.
|
Marco Biscaro.
Seja livre!
Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?
Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 21:52:37
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
Alguns detalhes que podem ajudar:
A classe StringBuilder tem os métodos length() e deleteCharAt(int index) que podem ser usados para remover o último caractere.
Assim você pode fazer outro append com o nome da tabela e só converter para String quando não for fazer mais nenhuma modificação.
|
Marco Biscaro.
Seja livre!
Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?
Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/10/2011 22:50:18
|
douglasmorais
JavaChild
![[Avatar]](/images/avatar/0c394f0bd80e37fa0d8873166e556457.png)
Membro desde: 29/10/2007 14:05:58
Mensagens: 141
Offline
|
[b]Valeu
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/10/2011 08:14:13
|
drsmachado
GUJ Expert
Membro desde: 25/09/2010 12:54:06
Mensagens: 3986
Localização: Curitiba / São José dos Pinhais - PR
Offline
|
marcobiscaro2112 wrote:
drsmachado wrote:
marcobiscaro2112 wrote:
Na prática, as duas linhas abaixo são equivalentes:
Na prática, a segunda linha lançará exception, pois métodos são chamados com os () ao final e os parâmetros requeridos entre eles.
Sim, esqueci dos parênteses na chamada do método, mas você entendeu a ideia.
Com certeza, só estava fazendo meu papel de ser chato.
|
Rumo aos 4000
"Os homens de verdade assumem suas responsabilidades e culpas. Esquivar-se e dar desculpas é atitude dos tolos, que preferem não se comprometer".
Lugar de perguntar é no fórum!
Não respondo via MP
Não respondo por Email
Não respondo por IM |
|
|
 |
|
|