| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2010 15:58:44
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
xdraculax wrote:Então, se eu uso o for, e dentro do for eu acesso o elemento de uma LinkedList pelo índice, significa que na execução do get, a iteração vai percorrer todos os elementos da LinkedList até o índice da iteração atual do MEU loop, correto?
Estou perguntando porque já vi isso em uns códigos aqui, e não reparei nisso.
Quando vou fazer iteração com loop (se for um ArrayList) eu uso o:
for( Tipo t: coleção){...}
Nesse caso, ele use o iterator para percorrer os elementos da lista?
Sim. Mas veja que na realidade o for extendido é uma operação especial do compilador.
Ele compila codigo diferente conforme o objeto iterado é um array ou um Iterable. qualquer Iterable pode ser usado, não apenas Collection e Map e suas filhas. Vc pode criar objetos que são naturalmente compostos e iterálos facilmente, exemplo
no caso aqu teriamos a classe Pedido que implementa Iterable<ItemPedido>
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2010 16:03:06
|
xdraculax
Java Ninja
Membro desde: 12/01/2009 16:12:54
Mensagens: 286
Offline
|
Entendi, obrigado pela ótima explicação   .
Só uma nota: então, as implementações de estruturas de dados como LinkedList não deveriam ter um método de obtenção por índice (como o get), e sim somente hasNext() e next().
|
-Atenha-se a resolver o problema, e não criticar opiniões.
-Você percebe que está programando d+, quando está escrevendo identado!
-Não precisa estar certo, basta acreditar. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2010 16:34:57
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline
|
xdraculax wrote:Só uma nota: então, as implementações de estruturas de dados como LinkedList não deveriam ter um método de obtenção por índice (como o get), e sim somente hasNext() e next().
E por que não? Você pode, efetivamente, querer pegar o segundo elemento da lista uma única vez: Não é a operação mais rápida do mundo num LinkedList, mas é uma operação possível em listas. Se for feita esporadicamente, ou em listas menores, não compromete a performance. Mas por isso, quando você vai utilizar collections, é importante conhecer bem as características de cada uma delas. Especialmente se você estiver trabalhando com otimização, seja de memória ou de velocidade.
This message was edited 1 time. Last update was at 24/06/2010 16:36:06
|
@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) 28/06/2010 22:41:34
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Para todos os outros tipos (LinkedList, Set, Map etc.) você tem de usar o Iterator.
Oi Thingol, por favor pode me explicar como assim todos os outros usam o iterator?
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2010 22:44:03
|
andredecotia
JWizard
![[Avatar]](/images/avatar/3e0c75ef9041e74cc2a533fa0fbbf33a.jpg)
Membro desde: 19/10/2009 14:37:32
Mensagens: 2267
Localização: São Paulo
Offline
|
Para todos os outros tipos (LinkedList, Set, Map etc.) você tem de usar o Iterator.
Oi Thingol/Vini, podem me explicar como assim todos usam o iterator?
abraço,
André AS
|
--
André AS
Analista Programador Java Web freelancer / home office
Linkedin: http://www.linkedin.com/profile/view?id=41470291&trk=tab_pro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2010 01:26:10
|
rarylson
What is classpath?
Membro desde: 08/11/2009 14:15:11
Mensagens: 6
Offline
|
Se quiserem entender bem a vantagem de um Iterator, experimenta percorrer uma árvore da Collections em pré-ordem e depois em pós-ordem sem usar Iterator...
This message was edited 1 time. Last update was at 22/09/2010 01:26:33
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2011 18:08:46
|
danilocmiranda
JavaBaby
![[Avatar]](/images/avatar/713618d9ab99100f532a942c05029d74.jpg)
Membro desde: 18/09/2009 08:15:19
Mensagens: 85
Offline
|
E adicionar um Objeto a coleção durante o for?
Como a gente faz isso com iterator?
|
site-blog -> http://danilomiranda.com
twitter -> @danilocmiranda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/06/2011 20:35:05
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline
|
danilocmiranda wrote:E adicionar um Objeto a coleção durante o for?
Como a gente faz isso com iterator?
Isso não tem como.
|
@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) 03/06/2011 07:10:37
|
danilocmiranda
JavaBaby
![[Avatar]](/images/avatar/713618d9ab99100f532a942c05029d74.jpg)
Membro desde: 18/09/2009 08:15:19
Mensagens: 85
Offline
|
Então qual a melhor forma de percorrer uma List e adicionar um objeto a ele?
Só criando uma nova List com os novos objetos?
|
site-blog -> http://danilomiranda.com
twitter -> @danilocmiranda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/06/2011 18:04:09
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline
|
Não entendi. Pra que você precisa percorrer o ArrayList? Não basta só dar add?
Se você não puder inserir duplicados, então é melhor usar um Set. O set também cobre o caso para a ordenação.
Se você precisar inserir um objeto numa ordem específica, faça a busca com o Collections.binarySearch e em seguida use o método insert que aceita como parãmetro um índice, além do valor.
|
@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) 03/06/2011 19:03:44
|
danilocmiranda
JavaBaby
![[Avatar]](/images/avatar/713618d9ab99100f532a942c05029d74.jpg)
Membro desde: 18/09/2009 08:15:19
Mensagens: 85
Offline
|
Eu tenho uma lista que é alimentada pelos objetos comuns de outras Listas (podem ser de duas a quatro listas)
Hoje o que faço é percorrer a List com o resultados dos objetos comuns das outras listas e dentro um for aninhado que percorre as outras listas e incrementa na lista Resultado.
Então dentro destes for's vou incrementando numa Lista Auxiliar e fora do for eu "seto" esta lista auxiliar na lista resultado.
Mais ou menos assim
Está funcionando, mas estou achando complicado demais...
alguma dica para simplificar este código?
P.s.: Perdão se cometi algum pecado no código, estou me expondo para aprender.
|
site-blog -> http://danilomiranda.com
twitter -> @danilocmiranda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/06/2011 19:20:50
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline
|
O resultado final é o que tiver de comum em todas as listas, é isso?
|
@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) 03/06/2011 19:50:56
|
danilocmiranda
JavaBaby
![[Avatar]](/images/avatar/713618d9ab99100f532a942c05029d74.jpg)
Membro desde: 18/09/2009 08:15:19
Mensagens: 85
Offline
|
Isso, o resultado é tudo que tem de comum entre as listas.
E ainda tenho que contar quantas vezes cada objeto apareceu nas listas.
|
site-blog -> http://danilomiranda.com
twitter -> @danilocmiranda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/06/2011 19:59:52
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline
|
Eu contaria através de um map<objeto, integer>().
|
@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) 03/06/2011 20:19:09
|
danilocmiranda
JavaBaby
![[Avatar]](/images/avatar/713618d9ab99100f532a942c05029d74.jpg)
Membro desde: 18/09/2009 08:15:19
Mensagens: 85
Offline
|
Entendi, vou fazer isso, acho que colocando dentro do meu código vai ser bem simples.
Valeu pela dica Vini.
O que achou do código? Dá pra melhorar?
|
site-blog -> http://danilomiranda.com
twitter -> @danilocmiranda |
|
|
 |
|
|