Map

Qual a caracteristica de uma lista que implementa a interface Map ?

Ola,

A que estah descrita aqui:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html

Map é thread safe… ambientes onde mta gente pode estar acessando… caso não seja seu caso… opte por uma ArrayList

Lists resolvem problemas diferentes de Maps.

Puppets

Collections:

List: lista de objetos onde ordem é importante e os objetos podem ser duplicados

Set: conjunto de objetos onde ordem não é importante, neste… objetos NÃO duplicados

Map: mapeamento de chave, a ordem não é importante e a chave não é duplicada

O que implementa…

List = ArrayList… LinkedList
Set = HashSet… TreeSet
Map = HashMap… TreeMap

O List é uma lista, onde você pode adicionar vários valores e o MAP trabalha com o conceito de chave e valor, ou seja, não se trata de uma lista simples.

Se você não precisar armazenar chave e valor, utilize List, senão utilize Map.

Agora… O que vc tem que analisar são as implementações (ArrayList, LinkedList, HashMap, IdentityHashMap… etc) levando em consideração que existe diferença perceptível de performance na implementação. Caso vc esteja trabalhando com cache de objetos… utilize Map.

qqer coisa post ai,

ABS

p/clonex8

Cara muito obrigado por sua explicação o Set eu já conhecia, ele não deixa colocar objetos repetidos na lista, esse Map e que está me deixando com dúvidas, pelo o que você falou Map está sempre associado há uma chave, é tipo uma tabela no banco de dados à qual eu tenho uma chave primaria e nunca posso ter uma chave primária igual o efeito é esse cara…?

Sim, se quiser dá até pra simular um banco na tua aplicação usando Map. Ou seja, um cache de objetos, como o clonex8 falou.

Falou besteira. Map representa uma relação entre dois grupos, onde um é a chave e outro o valor. List é uma seqüência ordenada de valores. Isso não tem nada a ver com thread-safety.

Vector (que implementa List) é thread-safe, enquanto que ArrayList e LinkedList (que também implementam List) não são.

Hashtable (que implementa Map) é thread-safe, enquanto que HashMap e LinkedHashMap (que também implementam Map) não são.

No pacote java.util.concurrent existem Lists, Maps e Sets thread-safe muito melhores que Vector e Hashtable. Por este motivo, Vector e Hashtable, na minha opinião, não servem para mais nada.

Falou besteira. Map representa uma relação entre dois grupos, onde um é a chave e outro o valor. List é uma seqüência ordenada de valores. Isso não tem nada a ver com thread-safety.

Vector (que implementa List) é thread-safe, enquanto que ArrayList e LinkedList (que também implementam List) não são.

Hashtable (que implementa Map) é thread-safe, enquanto que HashMap e LinkedHashMap (que também implementam Map) não são.

No pacote java.util.concurrent existem Lists, Maps e Sets thread-safe muito melhores que Vector e Hashtable. Por este motivo, Vector e Hashtable, na minha opinião, não servem para mais nada.[/quote]

victorwss… o q escrevi la em cima, sei q não tem nada ver… na ocasião, não deu tempo pra complementar o q escrevi abaixo… blz?

Mas o outro post justifica o q queria dizer…

vlw por complementar nossa collection mostrando quem roda em thread safe… O objetivo aki é esse…

abs

Puppets como o renrutal escreveu… dá pra simular… a ideia é por ai… Sobre tdo q foi escrito no post, dá pra ter uma base de escolha… agora depende da sua aplicação o q for + conveniente!

ABS