Como capturar todos os valores de um TreeMap?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
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).
Rafael Steil
Administrador
[Avatar]

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