| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/10/2004 11:18:40
|
marcos.ribeiro
JavaChild
Membro desde: 23/12/2002 12:18:31
Mensagens: 146
Offline
|
Smpre trabalhei com ArrayList para armazenar objetos e para percorre-lo eu usava assim
Funciona pois o método get(i) recebe um parametro inteiro.
No caso do TreeMap, o método get recebe um objeto que é a sua KEY, e nem sempre a KEY está em sequencia (0,1,2,3,4,5), então testar pelo for é furado.
Existe algum modo de eu caputrar e mostrar todos os valores dele?
Outra coisa, um TreeMAP aceita KEY duplicada diferente do HashMap né? e a diferença dele para o HashMap, é que o TreeMAP deixa os objetos já ordenados enquanto o HashMap não, certo? Consequentemente para fazer pesquisas, um objeto TreeMAP é mais eficiente (pois seus dados já estão ordenados).
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/10/2004 12:33:48
|
Rafael Steil
Administrador
![[Avatar]](/images/avatar/8e296a067a37563370ded05f5a3bf3ec.jpg)
Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline
|
Para iterar pelas chaves, use keySet().iterator(). Para ter um Map.Entry ( que te da um entry.getKey() e entry.getValue() ), use entrySet().iterator().
Implemetacoes de java.util.Map nao sao buscas lineares, logo "vai ser mais rpaido ja que esta ordenado" nao eh uma afirmacao valida.
Rafael
|
"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"
http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2004 08:54:48
|
marcos.ribeiro
JavaChild
Membro desde: 23/12/2002 12:18:31
Mensagens: 146
Offline
|
Rafael Steil wrote:Para iterar pelas chaves, use keySet().iterator(). Para ter um Map.Entry ( que te da um entry.getKey() e entry.getValue() ), use entrySet().iterator().
Implemetacoes de java.util.Map nao sao buscas lineares, logo "vai ser mais rpaido ja que esta ordenado" nao eh uma afirmacao valida.
Rafael
Obrigado Rafael, funcionou o esquema.
Agora eu pergunto, é mais aconselhável usar HashMap (que usa o esquema de HashTable) ou TreeMap (que usa o esquema de árvores), pergunto qual faria uma consulta mais optimizada e etc.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2004 13:48:30
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
A resposta mais simples é "depende". É a mesma coisa que perguntar se é melhor usar um caminhão ou um trator; depende de o que você normalmente precisa fazer.
Se você só precisa acessar o elemento da maneira mais rápída possível, use HashMap ou LinkedHashMap.
Se você precisa listar os elementos ordenadamente (de acordo com a chave), use TreeMap.
Se você precisa listar os elementos conforme a ordem de inserção, use LinkedHashMap.
|
|
|
 |
|
|