for ou Iterator  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
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
[MSN]
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
[Email] [WWW] [MSN]
Pedrosa
JWizard
[Avatar]

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
von.juliano
GUJ Master
[Avatar]

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/
[Email] [WWW]
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
[Email] [WWW] [MSN]
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.
[MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team