| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/12/2008 09:19:23
|
trinka
JavaBaby
Membro desde: 19/01/2008 16:07:47
Mensagens: 94
Localização: Brasília
Offline
|
Pessoal, minha duvida é a seguinte, tenho uma consulta no banco onde me eh retornado uma lista com mais de 5000 registros.. consigo pegar todos os registros e talz, mas esta demorando muito... e estou tendo q usar uma lista auxiliar para poder carregar o objeto pois ele nao esta conseguindo carregar todos os registros.. gostaria de saber se alguem tem alguma ideia de como melhorar isso..
abaixo segue o metodo
agredeço a ajuda
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/12/2008 09:59:45
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
O enhanced-for na verdade é um iterator mais "bonitinho", criado para facilitar a vida dos programadores (a performance é a mesma, creio eu).
Seu laço for está meio confuso... e você tem certeza que precisa de duas listas? Estou fazendo uns testes de performance com LinkedList e coloquei 500 mil Strings numa lista... (levou 9,6 segundos para colocar e depois imprimir todos os valores). Se está demorando muito o problema pode estar em outro lugar.
|
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) 23/12/2008 10:03:40
|
Pedrosa
JWizard
![[Avatar]](/images/avatar/2b763288faedb7707c0748abe015ab6c.jpg)
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
|
Use o forEach esse for: apartir do Java 5 o recurso esta disponível e mas rápido que seu antecessor Iterator não precisa de Cast e o codigo fica mais limpo:
Foi discutido algo aqui:
http://www.guj.com.br/posts/list/48075.java
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/12/2008 10:43:54
|
von.juliano
GUJ Master
![[Avatar]](/images/avatar/efb61dd984183066a8815190a28bd956.jpg)
Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline
|
O foreach utiliza o iterator, então a performance é a mesma. Se for utilizar o iterator, você pode parametrizá-lo, de forma a não precisar fazer casting.
Quanto à lentidão, se a ordem dos elementos não for importante, tente utilizar uma implementação da interface Set, como HashSet. Se for, tente um LinkedHashSet, lembrando que num Set não são permitidos elementos repetidos.
Blz? Flw!
|
É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!
Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/12/2008 11:21:26
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
Adicionar elementos num Set pode ser mais lento que numa List, uma vez que na List, basta colocar o valor na primeira posição não ocupada, enquanto que no Set, deve-se garantir que não existe o mesmo objeto.
Ao resgatar elementos, em geral ocorre o contrário (Set é mais rápida). Mas no final das contas, o List vale mais a pena.
|
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) 23/12/2008 12:08:46
|
trinka
JavaBaby
Membro desde: 19/01/2008 16:07:47
Mensagens: 94
Localização: Brasília
Offline
|
huuum.. entendi as vantagens e desvantangens, irei fazer alguns testes e postarei aqui os resultados, obrigado pelas explicações.
|
|
|
 |
|
|